@odigos/ui-kit 0.0.267 → 0.0.269

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 (39) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/lib/chunks/helpers-w7krM8zT.js +9 -0
  3. package/lib/chunks/index-C8U7vd0v.js +257 -0
  4. package/lib/chunks/source-instrument-form-context-DS-dr35D.js +5 -0
  5. package/lib/chunks/{ui-components-Dq_j4_BI.js → ui-components-dsTdscIC.js} +213 -208
  6. package/lib/components/condition/index.d.ts +6 -18
  7. package/lib/components.js +1 -1
  8. package/lib/constants/instrumentation-rules/index.d.ts +1 -0
  9. package/lib/constants/instrumentation-rules/supported-languages.d.ts +16 -0
  10. package/lib/constants.js +1 -1
  11. package/lib/containers/_drawers/edit-action-drawer/helpers.d.ts +3 -3
  12. package/lib/containers/_forms/add-action-form/custom-fields/index.d.ts +3 -0
  13. package/lib/containers.js +232 -321
  14. package/lib/contexts/action-form-context.d.ts +8 -2
  15. package/lib/contexts.js +1 -1
  16. package/lib/functions.js +1 -1
  17. package/lib/hooks/useActionFormData.d.ts +1 -1
  18. package/lib/hooks/useInstrumentationRuleFormData.d.ts +1 -1
  19. package/lib/hooks.js +1 -1
  20. package/lib/snippets/dynamic-field/fields.d.ts +65 -0
  21. package/lib/snippets/dynamic-field/index.d.ts +2 -27
  22. package/lib/snippets/dynamic-field/leaf.d.ts +35 -0
  23. package/lib/snippets.js +1 -1
  24. package/lib/store/useFilterStore.d.ts +4 -0
  25. package/lib/store.js +1 -1
  26. package/lib/theme.js +1 -1
  27. package/lib/types/actions/index.d.ts +6 -7
  28. package/lib/types/common/index.d.ts +25 -1
  29. package/lib/types/destinations/index.d.ts +2 -6
  30. package/lib/types/instrumentation-rules/index.d.ts +5 -8
  31. package/lib/types/workload/index.d.ts +12 -1
  32. package/lib/types.js +1 -1
  33. package/lib/visuals.js +1 -1
  34. package/package.json +1 -1
  35. package/lib/chunks/index-DUhfkGj1.js +0 -155
  36. package/lib/chunks/odigos-context-DzuZq_D5.js +0 -9
  37. package/lib/chunks/source-instrument-form-context-oSSPNkMA.js +0 -5
  38. package/lib/containers/_forms/add-action-form/dynamic-fields/index.d.ts +0 -21
  39. package/lib/containers/_forms/add-destination-form/dynamic-fields/index.d.ts +0 -9
@@ -1,4 +1,5 @@
1
1
  import { type FC, type ReactNode } from 'react';
2
+ import type { AutocompleteOption } from '../components';
2
3
  import { type GenericFormResult } from '../hooks/useGenericForm';
3
4
  import { type Action, type ActionFormData, type ActionOption } from '../types';
4
5
  interface ActionFormContextValue {
@@ -10,9 +11,14 @@ interface ActionFormContextValue {
10
11
  errorMessage?: string;
11
12
  preparedFormData: ActionFormData;
12
13
  };
14
+ sourceOptions: AutocompleteOption[];
15
+ namespaceOptions: AutocompleteOption[];
13
16
  }
14
- export declare const ActionFormContextProvider: FC<{
17
+ export interface ActionFormContextProviderProps {
15
18
  children: ReactNode;
16
- }>;
19
+ sourceOptions?: AutocompleteOption[];
20
+ namespaceOptions?: AutocompleteOption[];
21
+ }
22
+ export declare const ActionFormContextProvider: FC<ActionFormContextProviderProps>;
17
23
  export declare const useActionFormContext: () => ActionFormContextValue;
18
24
  export {};
package/lib/contexts.js CHANGED
@@ -1 +1 @@
1
- import{u as a,r as x,a as y}from"./chunks/source-instrument-form-context-oSSPNkMA.js";export{A as ActionFormContextProvider,C as CloudConnectorFormContextProvider,D as DataStreamFormContextProvider,b as DestinationFormContextProvider,O as OdigosApiConnectionsScope,c as OdigosApiProvider,R as RuleFormContextProvider,S as SamplingRuleFormType,d as SamplingRulesFormProvider,e as SourceEditFormContextProvider,f as SourceInstrumentFormContextProvider,p as prepareNamespacePayloads,g as prepareSourcePayloads,h as useActionFormContext,i as useApiLazyQuery,j as useApiMutation,k as useApiQuery,l as useCloudConnectorFormContext,m as useDataStreamFormContext,n as useDestinationFormContext,o as useOdigosApi,q as useRuleFormContext,s as useSamplingRulesFormContext,t as useSourceEditFormContext,v as useSourceInstrumentFormContext}from"./chunks/source-instrument-form-context-oSSPNkMA.js";export{O as OdigosProvider,c as checkVersionSupport,r as resolveMinSupportedVersion,u as useOdigos}from"./chunks/odigos-context-DzuZq_D5.js";import{jsx as F}from"react/jsx-runtime";import{useMemo as P,useContext as T,createContext as E}from"react";import{P as I,t as _}from"./chunks/ui-components-Dq_j4_BI.js";import{useApolloClient as M}from"@apollo/client/react";import"@apollo/client/link/error";import"@apollo/client/link/context";import"@apollo/client/utilities";import"@apollo/client/errors";import"@apollo/client";import"styled-components";import"./icons.js";import"zustand";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";const V=()=>{const o=M(),{operations:r,context:e}=a();return{multiFetch:async(t,s,n)=>{const i=r[t];return i?y(o,i,s,n,e):{results:[],allSucceeded:!1,anySucceeded:!1,successCount:0,failureCount:s.length,error:`Operation ${String(t)} not configured`}},bulkPersistSources:async(t,s)=>{const n=[];for(const i of t){const t={...e,proxyID:i},{error:a}=await x(o,r.PERSIST_SOURCES,s,t);a&&n.push(`${i}: ${a}`)}return n.length?{error:n.join(", ")}:void 0},applyConfigurations:async(t,s)=>{if(!r.UPDATE_REMOTE_CONFIG)return{error:"UPDATE_REMOTE_CONFIG not configured"};const{error:n}=await x(o,r.UPDATE_REMOTE_CONFIG,{formData:s,connectionIds:t},e);return n?{error:n}:void 0}}},N=(o,r)=>o.platformType===I.K8s?r.K8s:o.platformType===I.Vm?r.Vm:void 0,U=o=>r=>{const e=o[r.platformType];if(!e)return;const t=Object.keys(e);if(0===t.length)return;const s=_(r.schemaVersion??r.version),n=[...t].sort((o,r)=>_(r)-_(o)).find(o=>s>=_(o));return n?e[n]:void 0},w=(o,r)=>{const e={};for(const t of Object.keys(o))e[t]=r(o[t]);return e},z=E({formType:void 0}),G=({children:o,formType:r})=>{const e=P(()=>({formType:r}),[r]);return F(z.Provider,{value:e,children:o})},$=()=>T(z);export{G as StorybookProvider,N as pickByPlatform,V as useApiForConnections,$ as useStorybook,U as versionedDocument,w as vmDialectMap};
1
+ import{u as a,r as x,a as y}from"./chunks/source-instrument-form-context-DS-dr35D.js";export{A as ActionFormContextProvider,C as CloudConnectorFormContextProvider,D as DataStreamFormContextProvider,b as DestinationFormContextProvider,O as OdigosApiConnectionsScope,c as OdigosApiProvider,R as RuleFormContextProvider,S as SamplingRuleFormType,d as SamplingRulesFormProvider,e as SourceEditFormContextProvider,f as SourceInstrumentFormContextProvider,p as prepareNamespacePayloads,g as prepareSourcePayloads,h as useActionFormContext,i as useApiLazyQuery,j as useApiMutation,k as useApiQuery,l as useCloudConnectorFormContext,m as useDataStreamFormContext,n as useDestinationFormContext,o as useOdigosApi,q as useRuleFormContext,s as useSamplingRulesFormContext,t as useSourceEditFormContext,v as useSourceInstrumentFormContext}from"./chunks/source-instrument-form-context-DS-dr35D.js";export{O as OdigosProvider,c as checkVersionSupport,r as resolveMinSupportedVersion,u as useOdigos}from"./chunks/helpers-w7krM8zT.js";import{jsx as F}from"react/jsx-runtime";import{useMemo as P,useContext as T,createContext as E}from"react";import{P as I,t as _}from"./chunks/ui-components-dsTdscIC.js";import{useApolloClient as M}from"@apollo/client/react";import"@apollo/client/link/error";import"@apollo/client/link/context";import"@apollo/client/utilities";import"@apollo/client/errors";import"@apollo/client";import"styled-components";import"./icons.js";import"zustand";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";const V=()=>{const o=M(),{operations:r,context:e}=a();return{multiFetch:async(t,s,n)=>{const i=r[t];return i?y(o,i,s,n,e):{results:[],allSucceeded:!1,anySucceeded:!1,successCount:0,failureCount:s.length,error:`Operation ${String(t)} not configured`}},bulkPersistSources:async(t,s)=>{const n=[];for(const i of t){const t={...e,proxyID:i},{error:a}=await x(o,r.PERSIST_SOURCES,s,t);a&&n.push(`${i}: ${a}`)}return n.length?{error:n.join(", ")}:void 0},applyConfigurations:async(t,s)=>{if(!r.UPDATE_REMOTE_CONFIG)return{error:"UPDATE_REMOTE_CONFIG not configured"};const{error:n}=await x(o,r.UPDATE_REMOTE_CONFIG,{formData:s,connectionIds:t},e);return n?{error:n}:void 0}}},N=(o,r)=>o.platformType===I.K8s?r.K8s:o.platformType===I.Vm?r.Vm:void 0,U=o=>r=>{const e=o[r.platformType];if(!e)return;const t=Object.keys(e);if(0===t.length)return;const s=_(r.schemaVersion??r.version),n=[...t].sort((o,r)=>_(r)-_(o)).find(o=>s>=_(o));return n?e[n]:void 0},w=(o,r)=>{const e={};for(const t of Object.keys(o))e[t]=r(o[t]);return e},z=E({formType:void 0}),G=({children:o,formType:r})=>{const e=P(()=>({formType:r}),[r]);return F(z.Provider,{value:e,children:o})},$=()=>T(z);export{G as StorybookProvider,N as pickByPlatform,V as useApiForConnections,$ as useStorybook,U as versionedDocument,w as vmDialectMap};
package/lib/functions.js CHANGED
@@ -1 +1 @@
1
- export{bf as adaptInstrumentationRuleFromWire,bd as adaptInstrumentationRuleInputForWire,c9 as buildBadgeForDesiredStatus,fg as capitalizeFirstLetter,fh as cleanObjectEmptyStringsValues,bz as compareCondition,fi as decimalsOnly,aR as deepClone,ep as entityIdKey,eu as filterActions,et as filterDestinations,c4 as filterDestinationsByStream,es as filterSources,eg as filterSourcesByStream,fj as flattenObjectKeys,co as formatBytes,fk as formatDuration,a$ as generateId,c2 as getActionIcon,en as getConditionsBooleans,cC as getContainersIcons,fl as getContainersInstrumentedCount,fm as getDeepValue,bX as getDestinationIcon,fn as getDetectedLanguageIcons,ce as getEffectiveLanguage,cv as getEffectiveRuntimeVersion,eq as getEntityIcon,bc as getEntityId,em as getEntityIdKey,eo as getEntityLabel,fo as getHealthBadgeLabel,ba as getIdFromSseTarget,c6 as getInstrumentationRuleIcon,fp as getMainContainerLanguage,fq as getMetricForEntity,fr as getMonitorIcon,fs as getNearestTypographySize,ft as getPlatformIcon,ec as getPlatformLabel,aJ as getProgrammingLanguageIcon,fu as getRecursiveValues,cn as getSourceKindLabel,ck as getSourceLanguageIcons,b3 as getSseTargetFromId,fv as getStatusColor,ew as getStatusFromPodStatus,el as getStatusIcon,cp as getStatusTypeFromOdigosHealth,fw as getValueForRange,cj as getVirtualServiceIcon,ci as getWorkloadId,c5 as getYamlFieldsForDestination,fx as hasUnhealthyInstances,fy as instrumentationRuleSourceScopesFromWire,fz as instrumentationRuleSourceScopesToWire,bk as isEmpty,bl as isLegalK8sLabel,cX as isOverTime,fA as isStringABoolean,fB as isTimeElapsed,cu as isValidVersion,fC as mapConditions,cc as mapDesiredStatusToConditionStatus,c3 as mapDestinationFieldsForDisplay,bp as mapExportedSignals,bn as mapSupportedSignals,fD as numbersOnly,fE as parseBooleanFromString,fF as parseJsonStringToPrettyString,bE as prepareDestinationFormData,fG as removeEmptyValuesFromObject,s as safeJsonParse,fH as safeJsonStringify,fI as setDeepValue,fJ as sleep,v as splitCamelString,fK as stringifyNonStringValues,t as trimVersion}from"./chunks/ui-components-Dq_j4_BI.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";
1
+ export{bj as adaptInstrumentationRuleFromWire,bh as adaptInstrumentationRuleInputForWire,cc as buildBadgeForDesiredStatus,fl as capitalizeFirstLetter,fm as cleanObjectEmptyStringsValues,a3 as compareCondition,fn as decimalsOnly,aX as deepClone,et as entityIdKey,ey as filterActions,ex as filterDestinations,c7 as filterDestinationsByStream,ew as filterSources,ek as filterSourcesByStream,fo as flattenObjectKeys,cr as formatBytes,fp as formatDuration,b3 as generateId,c5 as getActionIcon,er as getConditionsBooleans,cG as getContainersIcons,fq as getContainersInstrumentedCount,fr as getDeepValue,b_ as getDestinationIcon,fs as getDetectedLanguageIcons,ch as getEffectiveLanguage,cz as getEffectiveRuntimeVersion,eu as getEntityIcon,bg as getEntityId,eq as getEntityIdKey,es as getEntityLabel,ft as getHealthBadgeLabel,be as getIdFromSseTarget,c9 as getInstrumentationRuleIcon,fu as getMainContainerLanguage,fv as getMetricForEntity,fw as getMonitorIcon,fx as getNearestTypographySize,fy as getPlatformIcon,eg as getPlatformLabel,O as getProgrammingLanguageIcon,fz as getRecursiveValues,cq as getSourceKindLabel,cn as getSourceLanguageIcons,b7 as getSseTargetFromId,ct as getStatusColor,eA as getStatusFromPodStatus,cu as getStatusIcon,cs as getStatusTypeFromOdigosHealth,fA as getValueForRange,cm as getVirtualServiceIcon,cl as getWorkloadId,c8 as getYamlFieldsForDestination,fB as hasUnhealthyInstances,fC as instrumentationRuleSourceScopesFromWire,fD as instrumentationRuleSourceScopesToWire,bo as isEmpty,bp as isLegalK8sLabel,c$ as isOverTime,fE as isStringABoolean,fF as isTimeElapsed,cy as isValidVersion,fG as mapConditions,cf as mapDesiredStatusToConditionStatus,c6 as mapDestinationFieldsForDisplay,bt as mapExportedSignals,br as mapSupportedSignals,fH as numbersOnly,fI as parseBooleanFromString,fJ as parseJsonStringToPrettyString,bE as prepareDestinationFormData,fK as removeEmptyValuesFromObject,v as safeJsonParse,fL as safeJsonStringify,fM as setDeepValue,fN as sleep,af as splitCamelString,fO as stringifyNonStringValues,t as trimVersion}from"./chunks/ui-components-dsTdscIC.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";
@@ -1,7 +1,7 @@
1
1
  import { type Action, type ActionFormData } from '../types';
2
2
  export declare const useActionFormData: () => {
3
3
  formData: ActionFormData;
4
- formErrors: Partial<Record<"disabled" | "type" | "name" | "notes" | "signals" | "fields", string>>;
4
+ formErrors: Partial<Record<"disabled" | "type" | "name" | "notes" | "fields" | "signals", string>>;
5
5
  handleFormChange: (key?: string | undefined, val?: any, obj?: ActionFormData | undefined) => void;
6
6
  resetFormData: (overrideForm?: ActionFormData | undefined) => void;
7
7
  validateForm: (params?: {
@@ -1,7 +1,7 @@
1
1
  import { type InstrumentationRule, type InstrumentationRuleFormData } from '../types';
2
2
  export declare const useInstrumentationRuleFormData: () => {
3
3
  formData: InstrumentationRuleFormData;
4
- formErrors: Partial<Record<"disabled" | "conditions" | "notes" | "sourceScopes" | "ruleName" | "workloads" | "instrumentationLibraries" | "codeAttributes" | "headersCollection" | "payloadCollection" | "customInstrumentations", string>>;
4
+ formErrors: Partial<Record<"disabled" | "conditions" | "sourceScopes" | "ruleName" | "notes" | "workloads" | "instrumentationLibraries" | "codeAttributes" | "headersCollection" | "payloadCollection" | "customInstrumentations", string>>;
5
5
  handleFormChange: (key?: string | undefined, val?: any, obj?: InstrumentationRuleFormData | undefined) => void;
6
6
  resetFormData: (overrideForm?: InstrumentationRuleFormData | undefined) => void;
7
7
  validateForm: () => boolean;
package/lib/hooks.js CHANGED
@@ -1 +1 @@
1
- export{fY as IGNORE_OUTSIDE_CLICK_ATTR,fZ as useActionFormData,f_ as useBodyScroll,er as useContainerSize,a_ as useCopy,f$ as useDataStreamFormData,g0 as useDestinationFormData,bg as useGenericForm,g1 as useInstrumentationRuleFormData,cW as useKeyDown,cr as useOnClickOutside,g2 as useOverflow,g3 as usePopup,c8 as useScrollIntoViewWhen,eR as useScrollTo,ei as useSessionStorage,g4 as useSourceFormData,c7 as useTimeAgo}from"./chunks/ui-components-Dq_j4_BI.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";
1
+ export{g2 as IGNORE_OUTSIDE_CLICK_ATTR,g3 as useActionFormData,g4 as useBodyScroll,ev as useContainerSize,b2 as useCopy,g5 as useDataStreamFormData,g6 as useDestinationFormData,bk as useGenericForm,g7 as useInstrumentationRuleFormData,c_ as useKeyDown,cv as useOnClickOutside,g8 as useOverflow,g9 as usePopup,cb as useScrollIntoViewWhen,eV as useScrollTo,en as useSessionStorage,ga as useSourceFormData,ca as useTimeAgo}from"./chunks/ui-components-dsTdscIC.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";
@@ -0,0 +1,65 @@
1
+ import React, { type FC } from 'react';
2
+ import { type SignalType, type YamlFieldProperties } from '../../types';
3
+ import { type AutocompleteOption } from '../../components';
4
+ /**
5
+ * How `keyValuePairs` fields persist their value.
6
+ *
7
+ * - `'array'` — `[{ key, value }]` rows. Used by destination catalogs (OTLP
8
+ * headers, CloudWatch tags, …) whose backends expect a JSON array.
9
+ * - `'map'` — `{ [key]: value }` object. Used by action catalogs
10
+ * (RenameAttribute `renames`) and any catalog that describes a true map.
11
+ *
12
+ * Defaults to `'map'` so action/rule catalogs keep their persisted shapes; the
13
+ * destination form passes `'array'` explicitly. Individual fields can still
14
+ * override via `componentProps.persistAs`.
15
+ */
16
+ export type KeyValuePersistAs = 'array' | 'map';
17
+ export interface DynamicFieldsProps {
18
+ signals: SignalType[];
19
+ /**
20
+ * YAML-defined field catalog entries. Shared across destinations
21
+ * (`DestinationYamlProperties`), actions (`ActionYamlProperties`), and
22
+ * instrumentation rules (`InstrumentationRuleYamlProperties`) — and the
23
+ * alternative catalogs exposed by VM Agent / Agents API, which mirror the
24
+ * same shape.
25
+ */
26
+ fields: YamlFieldProperties[];
27
+ /** Current field values keyed by field `name`. */
28
+ value: Record<string, unknown>;
29
+ setValue: (key: string, value: unknown) => void;
30
+ formErrors: Record<string, string>;
31
+ disabled?: boolean;
32
+ /**
33
+ * When true, fields with an `initialValue` seed their default into the form on
34
+ * mount (object defaults from fields sharing a `name` are merged). Off by
35
+ * default; enabled for actions and instrumentation rules, which need sensible
36
+ * pre-filled defaults.
37
+ */
38
+ seedInitialValues?: boolean;
39
+ /**
40
+ * Default persistence shape for `keyValuePairs` fields. See `KeyValuePersistAs`.
41
+ * @default 'map'
42
+ */
43
+ keyValuePersistAs?: KeyValuePersistAs;
44
+ /**
45
+ * Workload/namespace options for `componentType: sourceScopes` fields.
46
+ * Optional — omitted catalogs (or storybook) render an empty picker list.
47
+ */
48
+ sourceOptions?: AutocompleteOption[];
49
+ namespaceOptions?: AutocompleteOption[];
50
+ }
51
+ /**
52
+ * Renders form fields dynamically from a YAML-defined catalog. One shared
53
+ * renderer for destinations, actions, and instrumentation rules (OSS catalogs
54
+ * under `destinations/`, `actions/`, `instrumentationrules/`, plus the
55
+ * alternative catalogs served by VM Agent / Agents API).
56
+ *
57
+ * Supports flat fields (input, checkbox, multiInput, keyValuePairs, dropdown, …)
58
+ * as well as nested/tabular config via `multiTabledInput` (configurable columns)
59
+ * and `fieldGroup` (repeatable nested groups). Prefer this over bespoke
60
+ * `custom-fields/` forms whenever the backend catalog supplies fields.
61
+ */
62
+ export declare const DynamicFields: FC<DynamicFieldsProps>;
63
+ /** @deprecated Use `DynamicFields` — kept as an alias for older call sites. */
64
+ export declare const DynamicActionFields: React.FC<DynamicFieldsProps>;
65
+ export type DynamicActionFieldsProps = DynamicFieldsProps;
@@ -1,27 +1,2 @@
1
- import { type FC } from 'react';
2
- import { FieldTypes, InputTypes } from '../../types';
3
- import type { BadgeProps } from '../../components/badge';
4
- import type { DropDataOption } from '../../components/drop-data';
5
- import { type TimeUnit } from '../../components/time-input';
6
- import type { FieldMessageProps } from '../../components/field-message';
7
- import { ToggleSize } from '../../components/toggle';
8
- export interface DynamicFieldProps extends FieldMessageProps {
9
- componentType: FieldTypes;
10
- inputType?: InputTypes;
11
- name: string;
12
- label?: string;
13
- tooltip?: string;
14
- badge?: BadgeProps;
15
- placeholder?: string;
16
- required?: boolean;
17
- disabled?: boolean;
18
- value: any;
19
- setValue: (value: any) => void;
20
- dropdownOptions?: DropDataOption[];
21
- dropdownNoSearch?: boolean;
22
- dropdownNoCheckbox?: boolean;
23
- timeUnits?: TimeUnit[];
24
- timeDefaultUnit?: string;
25
- toggleSize?: ToggleSize;
26
- }
27
- export declare const DynamicField: FC<DynamicFieldProps>;
1
+ export * from './leaf';
2
+ export * from './fields';
@@ -0,0 +1,35 @@
1
+ import { type FC } from 'react';
2
+ import { FieldTypes, InputTypes } from '../../types';
3
+ import type { BadgeProps } from '../../components/badge';
4
+ import type { DropDataOption } from '../../components/drop-data';
5
+ import { type TimeUnit } from '../../components/time-input';
6
+ import type { FieldMessageProps } from '../../components/field-message';
7
+ import { ToggleSize } from '../../components/toggle';
8
+ export interface DynamicFieldProps extends FieldMessageProps {
9
+ componentType: FieldTypes;
10
+ inputType?: InputTypes;
11
+ name: string;
12
+ label?: string;
13
+ tooltip?: string;
14
+ badge?: BadgeProps;
15
+ placeholder?: string;
16
+ required?: boolean;
17
+ disabled?: boolean;
18
+ value: any;
19
+ setValue: (value: any) => void;
20
+ dropdownOptions?: DropDataOption[];
21
+ dropdownNoSearch?: boolean;
22
+ dropdownNoCheckbox?: boolean;
23
+ timeUnits?: TimeUnit[];
24
+ timeDefaultUnit?: string;
25
+ toggleSize?: ToggleSize;
26
+ /** Override key/value column headers for `keyValuePairs` fields. */
27
+ keyLabel?: string;
28
+ valueLabel?: string;
29
+ }
30
+ /**
31
+ * Renders a single leaf form control from a `componentType`. Used directly by
32
+ * settings and as the fallback renderer inside the catalog-driven `DynamicFields`
33
+ * for simple field kinds shared across destinations, actions, and rules.
34
+ */
35
+ export declare const DynamicField: FC<DynamicFieldProps>;
package/lib/snippets.js CHANGED
@@ -1 +1 @@
1
- export{A as ActionType,a as Actions,R as RichTitle}from"./chunks/ui-components-Dq_j4_BI.js";export{C as CancelModal,a as ConnectorCreatedModal,D as DURATION_OPTIONS,b as DeleteModal,c as DurationErrorsSection,d as DynamicField,I as InstrumentationPreviewSection,N as NOISY_PERCENTAGE_OPTIONS,O as OdigosLogoTextByTier,e as OperationSection,P as PERCENTAGE_OPTIONS,f as PercentageSection,g as PresetWithCustomInput,R as RuleInfoSection,h as RuleTypeSection,S as SamplingPreviewSection,i as SignalsCheckboxList,j as SourceScopeSection,U as UpgradeModal,W as WIDE_DRAWER_WIDTH,k as WideDrawer,Y as YamlSectionCard}from"./chunks/index-DUhfkGj1.js";export{C as ColoredSpan,a as ColoredSpanVariant}from"./chunks/odigos-context-DzuZq_D5.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";
1
+ export{A as ActionType,a as Actions,R as RichTitle}from"./chunks/ui-components-dsTdscIC.js";export{C as CancelModal,a as ConnectorCreatedModal,D as DURATION_OPTIONS,b as DeleteModal,c as DurationErrorsSection,d as DynamicActionFields,e as DynamicField,f as DynamicFields,I as InstrumentationPreviewSection,N as NOISY_PERCENTAGE_OPTIONS,O as OdigosLogoTextByTier,g as OperationSection,P as PERCENTAGE_OPTIONS,h as PercentageSection,i as PresetWithCustomInput,R as RuleInfoSection,j as RuleTypeSection,S as SamplingPreviewSection,k as SignalsCheckboxList,l as SourceScopeSection,U as UpgradeModal,W as WIDE_DRAWER_WIDTH,m as WideDrawer,Y as YamlSectionCard}from"./chunks/index-C8U7vd0v.js";export{C as ColoredSpan,a as ColoredSpanVariant}from"./chunks/helpers-w7krM8zT.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";
@@ -4,6 +4,7 @@ export interface FiltersState {
4
4
  statuses?: DropDataOption[];
5
5
  platformTypes?: DropDataOption[];
6
6
  namespaces?: DropDataOption[];
7
+ regions?: DropDataOption[];
7
8
  kinds?: DropDataOption[];
8
9
  monitors?: DropDataOption[];
9
10
  languages?: DropDataOption[];
@@ -19,6 +20,8 @@ interface StoreState {
19
20
  setPlatformTypes: (platformTypes: FiltersState['platformTypes']) => void;
20
21
  namespaces: FiltersState['namespaces'];
21
22
  setNamespaces: (namespaces: FiltersState['namespaces']) => void;
23
+ regions: FiltersState['regions'];
24
+ setRegions: (regions: FiltersState['regions']) => void;
22
25
  kinds: FiltersState['kinds'];
23
26
  setKinds: (kinds: FiltersState['kinds']) => void;
24
27
  monitors: FiltersState['monitors'];
@@ -31,6 +34,7 @@ interface StoreState {
31
34
  setOnlyErrors: (onlyErrors: FiltersState['onlyErrors']) => void;
32
35
  setAll: (params: Partial<FiltersState>) => void;
33
36
  clearAll: () => void;
37
+ clearFilters: () => void;
34
38
  getEmptyState: () => FiltersState;
35
39
  }
36
40
  export declare const useFilterStore: import("zustand").UseBoundStore<import("zustand").StoreApi<StoreState>>;
package/lib/store.js CHANGED
@@ -1 +1 @@
1
- export{c$ as DrawerType,b9 as ProgressKeys,ej as getDrawerTypeForAdd,cm as getDrawerTypeForEdit,fX as useDarkMode,b6 as useDataStreamStore,ch as useDrawerStore,ef as useFilterStore,b1 as useNotificationStore,b7 as useProgressStore,ek as useSelectedStore,b8 as useSetupStore}from"./chunks/ui-components-Dq_j4_BI.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";
1
+ export{d3 as DrawerType,bd as ProgressKeys,eo as getDrawerTypeForAdd,cp as getDrawerTypeForEdit,g1 as useDarkMode,ba as useDataStreamStore,ck as useDrawerStore,ej as useFilterStore,b5 as useNotificationStore,bb as useProgressStore,ep as useSelectedStore,bc as useSetupStore}from"./chunks/ui-components-dsTdscIC.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";
package/lib/theme.js CHANGED
@@ -1 +1 @@
1
- export{g5 as Provider,g6 as animations,g7 as opacity,g8 as palettes}from"./chunks/ui-components-Dq_j4_BI.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";
1
+ export{gb as Provider,gc as animations,gd as opacity,ge as palettes}from"./chunks/ui-components-dsTdscIC.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";
@@ -1,6 +1,7 @@
1
1
  import { SignalType } from '../signals';
2
2
  import { type DropDataOption } from '../../components';
3
- import { type Condition, FieldTypes, InputTypes, type PlatformType, type SVG } from '../common';
3
+ import type { SourcesScopes } from '../sampling';
4
+ import { type Condition, FieldTypes, InputTypes, type PlatformType, type SVG, type YamlFieldProperties } from '../common';
4
5
  export declare enum ActionType {
5
6
  K8sAttributes = "K8sAttributesResolver",
6
7
  AddClusterInfo = "AddClusterInfo",
@@ -23,14 +24,11 @@ export declare enum ActionKeyTypes {
23
24
  Renames = "renames",
24
25
  PiiCategories = "piiCategories",
25
26
  UrlTemplatizationRulesGroups = "urlTemplatizationRulesGroups",
26
- ExtractAttribute = "extractAttribute"
27
+ ExtractAttribute = "extractAttribute",
28
+ Scopes = "scopes"
27
29
  }
28
- export interface ActionYamlProperties {
30
+ export interface ActionYamlProperties extends YamlFieldProperties {
29
31
  name: string;
30
- componentType: FieldTypes;
31
- componentProperties?: string;
32
- displayName?: string;
33
- initialValue?: string;
34
32
  renderCondition?: string[];
35
33
  }
36
34
  export interface ActionDynamicField {
@@ -95,6 +93,7 @@ export interface ActionFields {
95
93
  [ActionKeyTypes.PiiCategories]?: string[] | null;
96
94
  [ActionKeyTypes.UrlTemplatizationRulesGroups]?: UrlTemplatizationRulesGroup[] | null;
97
95
  [ActionKeyTypes.ExtractAttribute]?: ExtractAttribute | null;
96
+ [ActionKeyTypes.Scopes]?: SourcesScopes | null;
98
97
  }
99
98
  export declare enum K8sAttributesFrom {
100
99
  Pod = "pod",
@@ -139,7 +139,31 @@ export declare enum FieldTypes {
139
139
  CheckboxList = "checkboxList",
140
140
  Toggle = "toggle",// not used by dests, but is in form components
141
141
  Time = "time",
142
- FieldGroup = "fieldGroup"
142
+ FieldGroup = "fieldGroup",
143
+ SourceScopes = "sourceScopes"
144
+ }
145
+ /**
146
+ * Shared shape of a single YAML-catalog form field. Mirrors the Go `Field`
147
+ * structs in the OSS catalogs (`destinations/`, `actions/`,
148
+ * `instrumentationrules/`) and the equivalent catalogs served by VM Agent /
149
+ * Agents API. Entity-specific types (`DestinationYamlProperties`,
150
+ * `ActionYamlProperties`, `InstrumentationRuleYamlProperties`) extend this with
151
+ * any extra metadata their catalog needs; the shared `DynamicFields` snippet
152
+ * only depends on these common properties.
153
+ */
154
+ export interface YamlFieldProperties {
155
+ name: string;
156
+ componentType: FieldTypes;
157
+ /** JSON string of componentProps, as serialized by the Go catalog service. */
158
+ componentProperties?: string;
159
+ displayName?: string;
160
+ initialValue?: string;
161
+ /**
162
+ * Declarative show/hide condition. Destination catalogs use a typed
163
+ * `YamlCompareArr`; action/rule catalogs currently ship a plain `string[]`
164
+ * with the same shape — both are accepted by `compareCondition`.
165
+ */
166
+ renderCondition?: any;
143
167
  }
144
168
  export declare enum InputTypes {
145
169
  Text = "text",
@@ -1,5 +1,5 @@
1
1
  import { type DropDataOption } from '../../components';
2
- import { type Condition, FieldTypes, type SVG, InputTypes } from '../common';
2
+ import { type Condition, type SVG, InputTypes, type YamlFieldProperties } from '../common';
3
3
  export declare enum DestinationTypes {
4
4
  Alauda = "alauda",
5
5
  AlibabaCloud = "alibabacloud",
@@ -106,13 +106,9 @@ export interface Destination {
106
106
  export type ComparisonStrings = '===' | '==' | '!==' | '!=' | '>' | '<' | '>=' | '<=';
107
107
  export type ComparisonArrays = 'INCLUDES' | 'EXCLUDES';
108
108
  export type YamlCompareArr = [string | 'SIGNALS', ComparisonStrings | ComparisonArrays, string] | ['true' | 'false'];
109
- export interface DestinationYamlProperties {
109
+ export interface DestinationYamlProperties extends YamlFieldProperties {
110
110
  name: string;
111
- componentType: FieldTypes;
112
- componentProperties?: string;
113
- displayName?: string;
114
111
  secret?: boolean;
115
- initialValue?: string;
116
112
  renderCondition?: YamlCompareArr;
117
113
  hideFromReadData?: YamlCompareArr;
118
114
  customReadDataLabels?: {
@@ -1,6 +1,6 @@
1
1
  import type { WorkloadId } from '../workload';
2
2
  import type { SourcesScopes } from '../sampling';
3
- import type { Condition, FieldTypes, ProgrammingLanguages, SVG } from '../common';
3
+ import type { Condition, ProgrammingLanguages, SVG, YamlFieldProperties } from '../common';
4
4
  export declare enum InstrumentationRuleType {
5
5
  CodeAttributes = "CodeAttributes",
6
6
  HeadersCollection = "HeadersCollection",
@@ -122,19 +122,16 @@ export interface PayloadCollection {
122
122
  [PayloadCollectionKeyTypes.DbQuery]?: DbQueryPayloadCollection | null;
123
123
  [PayloadCollectionKeyTypes.Messaging]?: MessagingPayloadCollection | null;
124
124
  }
125
- export interface InstrumentationRuleYamlProperties {
125
+ export interface InstrumentationRuleYamlProperties extends YamlFieldProperties {
126
126
  name: string;
127
- componentType: FieldTypes;
128
- componentProperties?: string;
129
- displayName?: string;
130
- initialValue?: string;
131
127
  renderCondition?: string[];
132
128
  }
129
+ export type SupportedInstrumentationLanguage = ProgrammingLanguages | '*';
133
130
  export interface InstrumentationRuleTypeOption {
134
131
  type: InstrumentationRuleType;
135
132
  displayName: string;
136
133
  description: string;
137
- supportedLanguages: ProgrammingLanguages[];
134
+ supportedLanguages?: SupportedInstrumentationLanguage[];
138
135
  docsUrl: string;
139
136
  fields: InstrumentationRuleYamlProperties[];
140
137
  }
@@ -147,7 +144,7 @@ export interface InstrumentationRuleOption {
147
144
  label: string;
148
145
  description: string;
149
146
  docsUrl: string;
150
- supportedLanguages: ProgrammingLanguages[];
147
+ supportedLanguages?: SupportedInstrumentationLanguage[];
151
148
  fields?: InstrumentationRuleYamlProperties[];
152
149
  }
153
150
  export {};
@@ -19,7 +19,7 @@ export declare enum DesiredConditionActionItemType {
19
19
  }
20
20
  export interface DesiredConditionActionItem {
21
21
  type: DesiredConditionActionItemType | string;
22
- userFacingText: string;
22
+ buttonText: string;
23
23
  }
24
24
  export interface NamespaceWorkload {
25
25
  id: WorkloadId;
@@ -66,9 +66,20 @@ export interface K8sWorkloadAgentEnabled {
66
66
  enabledStatus: DesiredConditionStatus;
67
67
  containers?: K8sWorkloadAgentEnabledContainer[] | null;
68
68
  }
69
+ export interface K8sWorkloadPodsManifestInjectionOverview {
70
+ totalPods: number;
71
+ totalAgentNotAppliedPods: number;
72
+ agentNotAppliedOk: boolean;
73
+ totalAgentAppliedPods: number;
74
+ agentAppliedOk: boolean;
75
+ totalAgentOutOfDatePods: number;
76
+ agentOutOfDateOk: boolean;
77
+ }
69
78
  export interface K8sWorkloadRollout {
70
79
  rolloutStatus?: DesiredConditionStatus | null;
71
80
  podsManifestInjectionStatus?: DesiredConditionStatus | null;
81
+ podsManifestInjectionOverview?: K8sWorkloadPodsManifestInjectionOverview | null;
82
+ agentsMetaHashChangedTime?: string | null;
72
83
  }
73
84
  export interface K8sWorkloadContainerOverrides {
74
85
  containerName: string;
package/lib/types.js CHANGED
@@ -1 +1 @@
1
- export{bi as ActionKeyTypes,bj as ActionType,eS as AgentInjectedReason,eT as BooleanOperation,b$ as CloudConnectorFeatureKey,u as CodeAttributesKeyTypes,eU as ConditionType,b4 as Crud,q as CustomInstrumentationsKeyTypes,cq as DesiredConditionActionItemType,ca as DesiredStateProgress,eV as DestinationTypes,b5 as EntityTypes,bv as ExtractionDataFormat,F as FieldTypes,G as GolangCustomProbe,H as HeadersCollectionKeyTypes,l as InputTypes,eW as InstallationMethod,eX as InstallationStatus,p as InstrumentationRuleType,eY as IntrumentationStatus,J as JavaCustomProbe,eZ as JsonOperation,bs as K8sAttributesFrom,br as K8sResourceKind,e_ as K8sWorkloadContainerAgentConfigTracesHeadSamplingSpanMetricsMode,e$ as ListDirection,f0 as NumberOperation,f1 as OtelDistroName,f2 as OtherEntityTypes,r as PayloadCollectionKeyTypes,P as PlatformType,f3 as PodContainerLifecycleStatus,f4 as PodContainerStatus,f5 as PodPhase,f6 as Profile,aI as ProgrammingLanguages,f7 as SIGNAL_KEY_TO_TYPE,f8 as SIGNAL_TYPE_TO_KEY,f9 as SignalKey,bo as SignalType,fa as SortDirection,aB as StatusType,fb as StringOperation,b as Tier,fc as WorkloadRolloutReason,ex as WorkloadRolloutStatus}from"./chunks/ui-components-Dq_j4_BI.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";
1
+ export{bm as ActionKeyTypes,bn as ActionType,eW as AgentInjectedReason,eX as BooleanOperation,c2 as CloudConnectorFeatureKey,ae as CodeAttributesKeyTypes,eY as ConditionType,b8 as Crud,a9 as CustomInstrumentationsKeyTypes,eZ as DesiredConditionActionItemType,cd as DesiredStateProgress,e_ as DestinationTypes,b9 as EntityTypes,by as ExtractionDataFormat,n as FieldTypes,ab as GolangCustomProbe,ac as HeadersCollectionKeyTypes,y as InputTypes,e$ as InstallationMethod,f0 as InstallationStatus,a8 as InstrumentationRuleType,f1 as IntrumentationStatus,aa as JavaCustomProbe,f2 as JsonOperation,bw as K8sAttributesFrom,bv as K8sResourceKind,f3 as K8sWorkloadContainerAgentConfigTracesHeadSamplingSpanMetricsMode,f4 as ListDirection,f5 as NumberOperation,f6 as OtelDistroName,f7 as OtherEntityTypes,ad as PayloadCollectionKeyTypes,P as PlatformType,f8 as PodContainerLifecycleStatus,f9 as PodContainerStatus,fa as PodPhase,fb as Profile,M as ProgrammingLanguages,fc as SIGNAL_KEY_TO_TYPE,fd as SIGNAL_TYPE_TO_KEY,fe as SignalKey,bs as SignalType,ff as SortDirection,S as StatusType,fg as StringOperation,b as Tier,fh as WorkloadRolloutReason,eB as WorkloadRolloutStatus}from"./chunks/ui-components-dsTdscIC.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";
package/lib/visuals.js CHANGED
@@ -1 +1 @@
1
- export{fd as VISUAL_ODIGOS_LOGO_HEIGHT,fe as VISUAL_ODIGOS_LOGO_WIDTH,V as VisualGreenRings,ff as VisualOdigosLogo,d9 as VisualPurpleRings}from"./chunks/ui-components-Dq_j4_BI.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";
1
+ export{fi as VISUAL_ODIGOS_LOGO_HEIGHT,fj as VISUAL_ODIGOS_LOGO_WIDTH,V as VisualGreenRings,fk as VisualOdigosLogo,dd as VisualPurpleRings}from"./chunks/ui-components-dsTdscIC.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odigos/ui-kit",
3
- "version": "0.0.267",
3
+ "version": "0.0.269",
4
4
  "author": "Odigos",
5
5
  "license": "MIT",
6
6
  "repository": {