@odigos/ui-kit 0.0.218 → 0.0.219

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 (100) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/lib/chunks/{index-BPGpDZxy.js → index-YIqbBRyO.js} +1 -1
  3. package/lib/chunks/{ui-components-CzlBPbLD.js → ui-components-Dj10kYlT.js} +428 -418
  4. package/lib/components/_v2/autocomplete/index.d.ts +1 -0
  5. package/lib/components/_v2/button/index.d.ts +1 -0
  6. package/lib/components/_v2/cards/section-card/index.d.ts +1 -1
  7. package/lib/components/_v2/drawer/footer/index.d.ts +9 -0
  8. package/lib/components/_v2/drawer/index.d.ts +2 -0
  9. package/lib/components/_v2/hover-actions/index.d.ts +2 -0
  10. package/lib/components/_v2/note/index.d.ts +1 -0
  11. package/lib/components/_v2/radio/index.d.ts +1 -0
  12. package/lib/components/_v2/search/index.d.ts +2 -1
  13. package/lib/components/_v2/segment/index.d.ts +2 -1
  14. package/lib/components/_v2/table/index.d.ts +3 -1
  15. package/lib/components/_v2/table/styled.d.ts +2 -0
  16. package/lib/components/_v2/table/table-rows/index.d.ts +2 -1
  17. package/lib/components/_v2/table/types.d.ts +2 -0
  18. package/lib/components/styled.d.ts +3 -0
  19. package/lib/components/tooltip/index.d.ts +2 -0
  20. package/lib/components/v2.js +1 -1
  21. package/lib/components.js +1 -1
  22. package/lib/constants/index.d.ts +1 -0
  23. package/lib/constants/sampling/index.d.ts +87 -0
  24. package/lib/constants.js +1 -1
  25. package/lib/containers/_v2/_drawers/create-sampling-rule-drawer/index.d.ts +18 -4
  26. package/lib/containers/_v2/_drawers/edit-auto-rule-drawer/index.d.ts +7 -2
  27. package/lib/containers/_v2/_drawers/edit-cost-reduction-auto-rule-drawer/index.d.ts +7 -2
  28. package/lib/containers/_v2/_drawers/edit-highly-relevant-auto-rule-drawer/index.d.ts +6 -2
  29. package/lib/containers/_v2/_drawers/view-sampling-rule-drawer/index.d.ts +2 -4
  30. package/lib/containers/_v2/_forms/create-sampling-rule-form/context.d.ts +34 -0
  31. package/lib/containers/_v2/_forms/create-sampling-rule-form/index.d.ts +3 -0
  32. package/lib/containers/_v2/{_drawers/create-sampling-rule-drawer → _forms/create-sampling-rule-form}/sections/duration-errors.d.ts +1 -1
  33. package/lib/containers/_v2/{_drawers/create-sampling-rule-drawer → _forms/create-sampling-rule-form}/sections/operation.d.ts +1 -1
  34. package/lib/containers/_v2/{_drawers/create-sampling-rule-drawer → _forms/create-sampling-rule-form}/sections/percentage.d.ts +1 -1
  35. package/lib/containers/_v2/{_drawers/create-sampling-rule-drawer → _forms/create-sampling-rule-form}/sections/rule-info.d.ts +1 -1
  36. package/lib/containers/_v2/{_drawers/create-sampling-rule-drawer → _forms/create-sampling-rule-form}/sections/sampling-preview.d.ts +1 -1
  37. package/lib/containers/_v2/_forms/create-sampling-rule-form/styled.d.ts +5 -0
  38. package/lib/containers/_v2/{_drawers/create-sampling-rule-drawer → _forms/create-sampling-rule-form}/types.d.ts +1 -1
  39. package/lib/containers/_v2/_forms/edit-auto-rule-form/context.d.ts +21 -0
  40. package/lib/containers/_v2/_forms/edit-auto-rule-form/index.d.ts +3 -0
  41. package/lib/containers/_v2/_forms/edit-cost-reduction-auto-rule-form/context.d.ts +21 -0
  42. package/lib/containers/_v2/_forms/edit-cost-reduction-auto-rule-form/index.d.ts +3 -0
  43. package/lib/containers/_v2/_forms/edit-highly-relevant-auto-rule-form/context.d.ts +14 -0
  44. package/lib/containers/_v2/_forms/edit-highly-relevant-auto-rule-form/index.d.ts +3 -0
  45. package/lib/containers/_v2/_forms/index.d.ts +5 -0
  46. package/lib/containers/_v2/_forms/view-sampling-rule-form/context.d.ts +37 -0
  47. package/lib/containers/_v2/{_drawers/view-sampling-rule-drawer → _forms/view-sampling-rule-form}/footer.d.ts +3 -3
  48. package/lib/containers/_v2/_forms/view-sampling-rule-form/index.d.ts +3 -0
  49. package/lib/containers/_v2/{_drawers/view-sampling-rule-drawer → _forms/view-sampling-rule-form}/reverse-converters.d.ts +2 -2
  50. package/lib/containers/_v2/{_drawers/view-sampling-rule-drawer → _forms/view-sampling-rule-form}/sections/operation-details.d.ts +1 -1
  51. package/lib/containers/_v2/{_drawers/view-sampling-rule-drawer → _forms/view-sampling-rule-form}/sections/percentage.d.ts +1 -1
  52. package/lib/containers/_v2/{_drawers/view-sampling-rule-drawer → _forms/view-sampling-rule-form}/sections/rule-info.d.ts +1 -1
  53. package/lib/containers/_v2/{_drawers/view-sampling-rule-drawer → _forms/view-sampling-rule-form}/sections/sampling-preview.d.ts +2 -2
  54. package/lib/containers/_v2/index.d.ts +1 -2
  55. package/lib/containers/_v2/sampling-rules/auto-rule-card/index.d.ts +8 -0
  56. package/lib/containers/_v2/{sampling-rules-list → sampling-rules}/helpers.d.ts +23 -5
  57. package/lib/containers/_v2/sampling-rules/index.d.ts +3 -0
  58. package/lib/containers/_v2/sampling-rules/rules-table/index.d.ts +13 -0
  59. package/lib/containers/_v2/{sampling-rules-list/toolbar.d.ts → sampling-rules/toolbar/index.d.ts} +1 -1
  60. package/lib/containers/_v2/sampling-rules/types.d.ts +72 -0
  61. package/lib/containers/source-drawer/profiling/symbol-table.d.ts +6 -0
  62. package/lib/containers/v2.js +148 -341
  63. package/lib/containers.js +124 -170
  64. package/lib/contexts.js +1 -1
  65. package/lib/functions.js +1 -1
  66. package/lib/hooks.js +1 -1
  67. package/lib/snippets/_v2/colored-span/index.d.ts +16 -0
  68. package/lib/snippets/_v2/index.d.ts +1 -0
  69. package/lib/snippets/_v2/rich-title/index.d.ts +2 -2
  70. package/lib/snippets/v2.js +15 -17
  71. package/lib/snippets.js +1 -1
  72. package/lib/store.js +1 -1
  73. package/lib/theme.js +1 -1
  74. package/lib/types.js +1 -1
  75. package/lib/visuals.js +1 -1
  76. package/package.json +13 -13
  77. package/lib/containers/_v2/_drawers/create-sampling-rule-drawer/constants.d.ts +0 -26
  78. package/lib/containers/_v2/_drawers/edit-auto-rule-drawer/constants.d.ts +0 -10
  79. package/lib/containers/_v2/_drawers/edit-auto-rule-drawer/types.d.ts +0 -8
  80. package/lib/containers/_v2/_drawers/edit-cost-reduction-auto-rule-drawer/constants.d.ts +0 -10
  81. package/lib/containers/_v2/_drawers/edit-cost-reduction-auto-rule-drawer/types.d.ts +0 -8
  82. package/lib/containers/_v2/_drawers/edit-highly-relevant-auto-rule-drawer/constants.d.ts +0 -6
  83. package/lib/containers/_v2/_drawers/edit-highly-relevant-auto-rule-drawer/types.d.ts +0 -6
  84. package/lib/containers/_v2/_drawers/view-sampling-rule-drawer/constants.d.ts +0 -19
  85. package/lib/containers/_v2/_drawers/view-sampling-rule-drawer/sections/styled.d.ts +0 -4
  86. package/lib/containers/_v2/_drawers/view-sampling-rule-drawer/types.d.ts +0 -1
  87. package/lib/containers/_v2/auto-rule-card/constants.d.ts +0 -1
  88. package/lib/containers/_v2/auto-rule-card/helpers.d.ts +0 -19
  89. package/lib/containers/_v2/auto-rule-card/index.d.ts +0 -5
  90. package/lib/containers/_v2/auto-rule-card/types.d.ts +0 -6
  91. package/lib/containers/_v2/sampling-rules-list/constants.d.ts +0 -23
  92. package/lib/containers/_v2/sampling-rules-list/index.d.ts +0 -6
  93. package/lib/containers/_v2/sampling-rules-list/rule-row.d.ts +0 -12
  94. package/lib/containers/_v2/sampling-rules-list/summary-span.d.ts +0 -10
  95. package/lib/containers/_v2/sampling-rules-list/types.d.ts +0 -47
  96. package/lib/containers/_v2/{_drawers/create-sampling-rule-drawer → _forms/create-sampling-rule-form}/converters.d.ts +0 -0
  97. package/lib/containers/_v2/{_drawers/create-sampling-rule-drawer → _forms/create-sampling-rule-form}/form-helpers.d.ts +0 -0
  98. package/lib/containers/_v2/{_drawers/create-sampling-rule-drawer → _forms/create-sampling-rule-form}/sections/source-scope.d.ts +1 -1
  99. /package/lib/containers/_v2/{_drawers/view-sampling-rule-drawer → _forms/view-sampling-rule-form}/sections/duration-errors.d.ts +0 -0
  100. /package/lib/containers/_v2/{_drawers/view-sampling-rule-drawer → _forms/view-sampling-rule-form}/sections/source-scopes.d.ts +0 -0
package/lib/contexts.js CHANGED
@@ -1 +1 @@
1
- export{dK as OdigosProvider,dL as StorybookProvider,aE as checkVersionSupport,a2 as useOdigos,dM as useStorybook}from"./chunks/ui-components-CzlBPbLD.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";
1
+ export{f5 as OdigosProvider,f6 as StorybookProvider,bN as checkVersionSupport,a2 as useOdigos,f7 as useStorybook}from"./chunks/ui-components-Dj10kYlT.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";
package/lib/functions.js CHANGED
@@ -1 +1 @@
1
- export{ck as capitalizeFirstLetter,dh as cleanObjectEmptyStringsValues,z as compareCondition,v as deepClone,bA as filterActions,b$ as filterDestinations,bZ as filterDestinationsByStream,b_ as filterSources,bY as filterSourcesByStream,di as flattenObjectKeys,bT as formatBytes,cT as formatDuration,g as generateId,bl as getActionIcon,bu as getConditionsBooleans,cN as getContainersIcons,cQ as getContainersInstrumentedCount,dj as getDeepValue,ah as getDestinationIcon,dk as getDetectedLanguageIcons,bH as getEntityIcon,bh as getEntityId,bC as getEntityLabel,dl as getIdFromSseTarget,bU as getInstrumentationRuleIcon,dm as getMainContainerLanguage,co as getMetricForEntity,dn as getMonitorIcon,dp as getPlatformIcon,dq as getPlatformLabel,a1 as getProgrammingLanguageIcon,cV as getRecursiveValues,bV as getSourceLanguageIcons,dr as getSseTargetFromId,ds as getStatusColor,aL as getStatusFromPodStatus,by as getStatusIcon,cD as getStatusTypeFromOdigosHealth,dt as getValueForRange,cx as getVirtualServiceIcon,cu as getWorkloadId,cj as getYamlFieldsForDestination,cE as hasUnhealthyInstances,l as isEmpty,du as isLegalK8sLabel,aA as isOverTime,cI as isStringABoolean,dv as isTimeElapsed,dw as isValidVersion,bx as mapConditions,ch as mapDestinationFieldsForDisplay,L as mapExportedSignals,H as mapSupportedSignals,dx as numbersOnly,cJ as parseBooleanFromString,dy as parseJsonStringToPrettyString,dz as removeEmptyValuesFromObject,M as safeJsonParse,dA as safeJsonStringify,dB as setDeepValue,bN as sleep,c6 as splitCamelString,dC as stringifyNonStringValues,bo as trimVersion}from"./chunks/ui-components-CzlBPbLD.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";
1
+ export{dH as capitalizeFirstLetter,eE as cleanObjectEmptyStringsValues,z as compareCondition,v as deepClone,cW as filterActions,dl as filterDestinations,dj as filterDestinationsByStream,dk as filterSources,di as filterSourcesByStream,eF as flattenObjectKeys,dd as formatBytes,ef as formatDuration,g as generateId,cH as getActionIcon,cQ as getConditionsBooleans,e9 as getContainersIcons,ec as getContainersInstrumentedCount,eG as getDeepValue,bg as getDestinationIcon,eH as getDetectedLanguageIcons,d1 as getEntityIcon,cD as getEntityId,cY as getEntityLabel,eI as getIdFromSseTarget,de as getInstrumentationRuleIcon,eJ as getMainContainerLanguage,dL as getMetricForEntity,eK as getMonitorIcon,eL as getPlatformIcon,eM as getPlatformLabel,a1 as getProgrammingLanguageIcon,eh as getRecursiveValues,df as getSourceLanguageIcons,eN as getSseTargetFromId,eO as getStatusColor,bU as getStatusFromPodStatus,cU as getStatusIcon,d_ as getStatusTypeFromOdigosHealth,eP as getValueForRange,dU as getVirtualServiceIcon,dR as getWorkloadId,dG as getYamlFieldsForDestination,d$ as hasUnhealthyInstances,l as isEmpty,eQ as isLegalK8sLabel,bF as isOverTime,e4 as isStringABoolean,eR as isTimeElapsed,eS as isValidVersion,cT as mapConditions,dE as mapDestinationFieldsForDisplay,L as mapExportedSignals,H as mapSupportedSignals,eT as numbersOnly,e5 as parseBooleanFromString,eU as parseJsonStringToPrettyString,eV as removeEmptyValuesFromObject,M as safeJsonParse,eW as safeJsonStringify,eX as setDeepValue,d7 as sleep,dt as splitCamelString,eY as stringifyNonStringValues,cK as trimVersion}from"./chunks/ui-components-Dj10kYlT.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";
package/lib/hooks.js CHANGED
@@ -1 +1 @@
1
- export{bg as useActionFormData,dN as useBodyScroll,c0 as useClickNode,cv as useClickNotification,bX as useContainerSize,u as useCopy,cb as useDataStreamFormData,ci as useDestinationFormData,t as useGenericForm,cr as useInstrumentationRuleFormData,ay as useKeyDown,c5 as useOnClickOutside,c1 as usePopup,ca as useSessionStorage,cK as useSourceFormData,cO as useSourceSelectionFormData,az as useTimeAgo}from"./chunks/ui-components-CzlBPbLD.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";
1
+ export{cC as useActionFormData,f8 as useBodyScroll,dm as useClickNode,dS as useClickNotification,dh as useContainerSize,u as useCopy,dy as useDataStreamFormData,dF as useDestinationFormData,t as useGenericForm,dO as useInstrumentationRuleFormData,bD as useKeyDown,ds as useOnClickOutside,dn as usePopup,dx as useSessionStorage,e6 as useSourceFormData,ea as useSourceSelectionFormData,bE as useTimeAgo}from"./chunks/ui-components-Dj10kYlT.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";
@@ -0,0 +1,16 @@
1
+ import { type FC } from 'react';
2
+ export declare enum ColoredSpanVariant {
3
+ Default = "default",
4
+ Action = "action",
5
+ Endpoint = "endpoint",
6
+ Scope = "scope",
7
+ Duration = "duration"
8
+ }
9
+ export interface ColoredSpanPart {
10
+ text: string;
11
+ variant: ColoredSpanVariant;
12
+ }
13
+ export interface ColoredSpanProps {
14
+ parts: ColoredSpanPart[];
15
+ }
16
+ export declare const ColoredSpan: FC<ColoredSpanProps>;
@@ -1,5 +1,6 @@
1
1
  export * from './actions';
2
2
  export * from './cancel-modal';
3
+ export * from './colored-span';
3
4
  export * from './delete-modal';
4
5
  export * from './dynamic-field';
5
6
  export * from './odigos-logo-text-by-tier';
@@ -2,8 +2,8 @@ import { ReactNode, type FC } from 'react';
2
2
  import type { SVG } from '@/types';
3
3
  import { type BadgeProps } from '@/components/_v2/badge';
4
4
  export interface RichTitleProps {
5
- icon: SVG;
6
- title: string;
5
+ icon?: SVG;
6
+ title?: string;
7
7
  subTitle?: string;
8
8
  withCopy?: boolean;
9
9
  badge?: BadgeProps;
@@ -1,55 +1,53 @@
1
- import{cX as e,r as a,n as i,o as r,d as t,ai as s,y as l,m as n,M as o,p as d,I as c,k as p,a2 as h,a8 as u,v as g,c8 as v,F as m,i as b,c as f,j as x,cY as y,bS as w,b as $,N as C,ax as S,af as L,e as M,aP as k,aV as O,P as D,Q as H,q as N,a as T}from"../chunks/ui-components-CzlBPbLD.js";export{A as ActionType,aQ as Actions}from"../chunks/ui-components-CzlBPbLD.js";import{jsx as j,jsxs as q,Fragment as I}from"react/jsx-runtime";import{OdigosLogoTextEnterprise as V,OdigosLogoTextCommunity as W,VSquareIcon as z,OdigosLogo as X,ArrowLeftIcon as P,ArrowRightIcon as R}from"../icons.js";import{useState as F,useRef as G,useEffect as B,forwardRef as E,useImperativeHandle as K}from"react";import J from"styled-components";export{Y as YamlSectionCard}from"../chunks/index-BPGpDZxy.js";import"zustand";import"javascript-time-ago";import"../chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";const Q=({isOpen:a,onClose:i,onDeny:r,onApprove:t})=>j(e,{title:"Discard changes?",description:"You have unsaved changes.\nIf you cancel now, your changes won't be saved.",isOpen:a,onClose:i,onDeny:r,denyLabel:"Keep editing",onApprove:t,approveLabel:"Discard changes"}),U=({isOpen:a,onClose:i,onDeny:r,onApprove:t,action:s="delete",target:l})=>{const n=s.charAt(0).toUpperCase()+s.substring(1),o=l?.endsWith("s")?"these":"this";return j(e,{title:`${n}${l?` ${l}`:""}?`,description:`Are you sure you want to ${s}${l?` ${o} ${l}`:""}?`,isOpen:a,onClose:i,onDeny:r,denyLabel:"Go back",onApprove:t,approveLabel:n})},Z=({componentType:e,inputType:h,name:u,label:g,tooltip:v,badge:m,placeholder:b,required:f,disabled:x,value:y,setValue:w,errorMessage:$,warnMessage:C,helpMessage:S,dropdownOptions:L})=>{switch(e){case a.Input:return j(c,{name:u,type:h,label:g,tooltip:v,badge:m,placeholder:b,required:f,disabled:x,value:y??"",onChange:e=>{const a=e.target.value;w(h===p.Number?""===a?null:Number(a):a)},errorMessage:$,warnMessage:C,helpMessage:S},u);case a.MultiInput:return j(d,{name:u,label:g,tooltip:v,badge:m,placeholder:b,required:f,disabled:x,values:Array.isArray(y)?y:o(y,[]),setValues:e=>w(e),errorMessage:$,warnMessage:C,helpMessage:S},u);case a.KeyValuePair:return j(n,{name:u,label:g,tooltip:v,badge:m,required:f,disabled:x,limitFieldsPerRow:2,columns:[{keyName:"key",label:"Key"},{keyName:"value",label:"Value"}],values:Array.isArray(y)?y:o(y,[]),setValues:e=>w(e),errorMessage:$,warnMessage:C,helpMessage:S},u);case a.TextArea:return j(l,{name:u,label:g,tooltip:v,badge:m,required:f,disabled:x,placeholder:b,value:y??"",onChange:e=>w(e.target.value),errorMessage:$,warnMessage:C,helpMessage:S},u);case a.Dropdown:return j(s,{name:u,label:g,tooltip:v,badge:m,placeholder:b,required:f,disabled:x,withSearch:!0,options:L?.map(e=>({id:e.id||"",label:e.value||""}))||[],values:y?[String(y)]:[],setValues:e=>w(e[0]),errorMessage:$,warnMessage:C,helpMessage:S},u);case a.Checkbox:return j(t,{name:u,label:g,tooltip:v,badge:m,value:!0===y||"true"===y,onChange:e=>w(e),disabled:x,errorMessage:$,warnMessage:C,helpMessage:S},u);case a.Toggle:return j(i,{name:u,labelAlign:r.Right,label:g,tooltip:v,badge:m,value:!0===y||"true"===y,onChange:e=>w(e),disabled:x,errorMessage:$,warnMessage:C,helpMessage:S},u);default:return null}},_=({size:e=200})=>{const{tier:a}=h();return a===u.Onprem?j(V,{size:e}):j(W,{size:e})},ee=(e,a)=>!a?.length||!!a?.find(a=>a===e),ae=({title:e="Signals",required:a,errorMessage:i,allowedSignals:r,selectedSignals:s,setSelectedSignals:l,disabled:n})=>{const[o,d]=F(1===s.length),c=G(JSON.stringify(s));B(()=>{const e=g(s);e.length||v.forEach(({id:a})=>{ee(a,r)&&e.push(a)});const a=JSON.stringify(e);c.current!==a&&(c.current=a,l(e),d(1===e.length))},[r,s]);return q(m,{$gap:12,children:[j(b,{label:e,required:a}),j(f,{$gap:12,children:v.map(e=>{const a=ee(e.id,r),i=((e,a)=>!!a?.find(a=>a===e))(e.id,s);return a?j(t,{label:e.value,disabled:n||!a||o&&i,value:i,onChange:a=>((e,a)=>{const i=e,r=a?[...s,i]:s.filter(e=>e!==i);l(r),d(1===r.length)})(e.id,a)},e.id):null})}),j(x,{errorMessage:i})]})},ie=({minSupportedVersion:a,currentVersion:i})=>j(e,{isOpen:!0,onClose:()=>{},relativeToParent:!0,visual:()=>j(y,{scale:2.4,icon:()=>j("svg",{xmlns:"http://www.w3.org/2000/svg",width:"22",height:"21",viewBox:"0 0 22 21",fill:"none",children:j("path",{fill:"#151618",d:"M9.4844 0.730003C9.99694 -0.243259 11.4076 -0.24341 11.92 0.730003L11.9685 0.831353L14.3039 6.22012L20.153 6.77755C21.3553 6.89211 21.841 8.38683 20.9358 9.18621L16.5314 13.0731L17.8091 18.8079C18.0716 19.9868 16.8005 20.9109 15.7605 20.2969L10.7017 17.3093L5.64282 20.2969C4.60289 20.9104 3.33173 19.9866 3.59427 18.8079L4.87192 13.0741L0.468608 9.18621C-0.43662 8.38693 0.0482932 6.8924 1.25029 6.77755L7.09837 6.22012L9.43588 0.831353L9.4844 0.730003ZM8.55284 7.02876C8.35287 7.48992 7.9179 7.80589 7.41751 7.85357L2.03952 8.36571L6.09027 11.941C6.46691 12.2737 6.63296 12.7852 6.5237 13.2758L5.34956 18.5459L10.0008 15.8009L10.1669 15.7179C10.5087 15.574 10.8945 15.5741 11.2364 15.7179L11.4036 15.8009L16.0538 18.5459L14.8807 13.2758C14.7714 12.7851 14.9374 12.2737 15.3141 11.941L19.3627 8.36571L13.9858 7.85357C13.4855 7.80587 13.0505 7.4899 12.8505 7.02876L10.7017 2.07342L8.55284 7.02876Z"})})}),title:"Upgrade Required",description:`To use this feature, please upgrade to Odigos v${a} or later.\nCurrent version: ${i}.`}),re=J.div`
1
+ import{cc as e,r as a,n as r,o as s,d as i,bh as t,y as n,m as o,M as l,p as d,I as c,k as p,a2 as u,a8 as h,v as g,dv as v,F as m,i as b,c as f,j as x,ej as y,dc as w,b as $,N as C,Q as M,a as L,bp as S,be as k,e as O,bY as D,dZ as I}from"../chunks/ui-components-Dj10kYlT.js";export{A as ActionType,bZ as Actions}from"../chunks/ui-components-Dj10kYlT.js";import{jsx as H,Fragment as N,jsxs as T}from"react/jsx-runtime";import j from"styled-components";import{OdigosLogoTextEnterprise as q,OdigosLogoTextCommunity as V,ArrowLeftIcon as z,ArrowRightIcon as R,VSquareIcon as E}from"../icons.js";import{useState as F,useRef as P,useEffect as Z,forwardRef as B,useImperativeHandle as K,useCallback as X,useMemo as G}from"react";export{Y as YamlSectionCard}from"../chunks/index-YIqbBRyO.js";import"zustand";import"javascript-time-ago";import"../chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";const J=({isOpen:a,onClose:r,onDeny:s,onApprove:i})=>H(e,{title:"Discard changes?",description:"You have unsaved changes.\nIf you cancel now, your changes won't be saved.",isOpen:a,onClose:r,onDeny:s,denyLabel:"Keep editing",onApprove:i,approveLabel:"Discard changes"});var U;!function(e){e.Default="default",e.Action="action",e.Endpoint="endpoint",e.Scope="scope",e.Duration="duration"}(U||(U={}));const _=[U.Action,U.Endpoint,U.Scope,U.Duration],Q=j.span`
2
+ font-family: ${({theme:e,$isMono:a})=>a?e.font_family.secondary:e.font_family.primary};
3
+ font-size: ${({theme:e})=>e.v2.text.size.xxs}px;
4
+ line-height: 20px;
5
+ color: ${({theme:e,$variant:a})=>{const r=e.v2.colors;switch(a){case"action":return r.green[400];case"endpoint":return r.purple[300];case"scope":return r.yellow[400];case"duration":return r.orange[600];default:return r.white[500]}}};
6
+ `,W=({parts:e})=>H(N,{children:e.map((e,a)=>H(Q,{$variant:e.variant,$isMono:_.includes(e.variant),children:e.text},a))}),ee=({isOpen:a,onClose:r,onDeny:s,onApprove:i,action:t="delete",target:n})=>{const o=t.charAt(0).toUpperCase()+t.substring(1),l=n?.endsWith("s")?"these":"this";return H(e,{title:`${o}${n?` ${n}`:""}?`,description:`Are you sure you want to ${t}${n?` ${l} ${n}`:""}?`,isOpen:a,onClose:r,onDeny:s,denyLabel:"Go back",onApprove:i,approveLabel:o})},ae=({componentType:e,inputType:u,name:h,label:g,tooltip:v,badge:m,placeholder:b,required:f,disabled:x,value:y,setValue:w,errorMessage:$,warnMessage:C,helpMessage:M,dropdownOptions:L})=>{switch(e){case a.Input:return H(c,{name:h,type:u,label:g,tooltip:v,badge:m,placeholder:b,required:f,disabled:x,value:y??"",onChange:e=>{const a=e.target.value;w(u===p.Number?""===a?null:Number(a):a)},errorMessage:$,warnMessage:C,helpMessage:M},h);case a.MultiInput:return H(d,{name:h,label:g,tooltip:v,badge:m,placeholder:b,required:f,disabled:x,values:Array.isArray(y)?y:l(y,[]),setValues:e=>w(e),errorMessage:$,warnMessage:C,helpMessage:M},h);case a.KeyValuePair:return H(o,{name:h,label:g,tooltip:v,badge:m,required:f,disabled:x,limitFieldsPerRow:2,columns:[{keyName:"key",label:"Key"},{keyName:"value",label:"Value"}],values:Array.isArray(y)?y:l(y,[]),setValues:e=>w(e),errorMessage:$,warnMessage:C,helpMessage:M},h);case a.TextArea:return H(n,{name:h,label:g,tooltip:v,badge:m,required:f,disabled:x,placeholder:b,value:y??"",onChange:e=>w(e.target.value),errorMessage:$,warnMessage:C,helpMessage:M},h);case a.Dropdown:return H(t,{name:h,label:g,tooltip:v,badge:m,placeholder:b,required:f,disabled:x,withSearch:!0,options:L?.map(e=>({id:e.id||"",label:e.value||""}))||[],values:y?[String(y)]:[],setValues:e=>w(e[0]),errorMessage:$,warnMessage:C,helpMessage:M},h);case a.Checkbox:return H(i,{name:h,label:g,tooltip:v,badge:m,value:!0===y||"true"===y,onChange:e=>w(e),disabled:x,errorMessage:$,warnMessage:C,helpMessage:M},h);case a.Toggle:return H(r,{name:h,labelAlign:s.Right,label:g,tooltip:v,badge:m,value:!0===y||"true"===y,onChange:e=>w(e),disabled:x,errorMessage:$,warnMessage:C,helpMessage:M},h);default:return null}},re=({size:e=200})=>{const{tier:a}=u();return a===h.Onprem?H(q,{size:e}):H(V,{size:e})},se=(e,a)=>!a?.length||!!a?.find(a=>a===e),ie=({title:e="Signals",required:a,errorMessage:r,allowedSignals:s,selectedSignals:t,setSelectedSignals:n,disabled:o})=>{const[l,d]=F(1===t.length),c=P(JSON.stringify(t));Z(()=>{const e=g(t);e.length||v.forEach(({id:a})=>{se(a,s)&&e.push(a)});const a=JSON.stringify(e);c.current!==a&&(c.current=a,n(e),d(1===e.length))},[s,t]);return T(m,{$gap:12,children:[H(b,{label:e,required:a}),H(f,{$gap:12,children:v.map(e=>{const a=se(e.id,s),r=((e,a)=>!!a?.find(a=>a===e))(e.id,t);return a?H(i,{label:e.value,disabled:o||!a||l&&r,value:r,onChange:a=>((e,a)=>{const r=e,s=a?[...t,r]:t.filter(e=>e!==r);n(s),d(1===s.length)})(e.id,a)},e.id):null})}),H(x,{errorMessage:r})]})},te=({minSupportedVersion:a,currentVersion:r})=>H(e,{isOpen:!0,onClose:()=>{},relativeToParent:!0,visual:()=>H(y,{scale:2.4,icon:()=>H("svg",{xmlns:"http://www.w3.org/2000/svg",width:"22",height:"21",viewBox:"0 0 22 21",fill:"none",children:H("path",{fill:"#151618",d:"M9.4844 0.730003C9.99694 -0.243259 11.4076 -0.24341 11.92 0.730003L11.9685 0.831353L14.3039 6.22012L20.153 6.77755C21.3553 6.89211 21.841 8.38683 20.9358 9.18621L16.5314 13.0731L17.8091 18.8079C18.0716 19.9868 16.8005 20.9109 15.7605 20.2969L10.7017 17.3093L5.64282 20.2969C4.60289 20.9104 3.33173 19.9866 3.59427 18.8079L4.87192 13.0741L0.468608 9.18621C-0.43662 8.38693 0.0482932 6.8924 1.25029 6.77755L7.09837 6.22012L9.43588 0.831353L9.4844 0.730003ZM8.55284 7.02876C8.35287 7.48992 7.9179 7.80589 7.41751 7.85357L2.03952 8.36571L6.09027 11.941C6.46691 12.2737 6.63296 12.7852 6.5237 13.2758L5.34956 18.5459L10.0008 15.8009L10.1669 15.7179C10.5087 15.574 10.8945 15.5741 11.2364 15.7179L11.4036 15.8009L16.0538 18.5459L14.8807 13.2758C14.7714 12.7851 14.9374 12.2737 15.3141 11.941L19.3627 8.36571L13.9858 7.85357C13.4855 7.80587 13.0505 7.4899 12.8505 7.02876L10.7017 2.07342L8.55284 7.02876Z"})})}),title:"Upgrade Required",description:`To use this feature, please upgrade to Odigos v${a} or later.\nCurrent version: ${r}.`}),ne=j.div`
2
7
  display: flex;
3
8
  flex-direction: column;
4
9
  justify-content: flex-end;
5
10
  width: ${({$width:e})=>e};
6
11
  gap: ${({$columnHasHeader:e})=>e?"0":"12px"};
7
- `,te=J.div`
12
+ `,oe=j.div`
8
13
  display: flex;
9
14
  align-items: center;
10
15
  min-height: 24px;
11
16
  padding: 12px;
12
17
  border-radius: 16px 16px 0 0;
13
18
  background-color: ${({theme:e})=>e.v2.colors.silver[800]};
14
- `,se=J.div`
19
+ `,le=j.div`
15
20
  display: flex;
16
21
  flex-direction: column;
17
22
  gap: ${({$gap:e})=>e}px;
18
23
  padding: 12px 12px 0 12px;
19
24
  width: calc(100% - 24px);
20
25
  height: ${({$heightOffset:e,$columnHasHeader:a})=>`calc(100vh - 180px - ${e}px ${a?"- 48px":""})`};
21
- border-radius: ${({$columnHasHeader:e,$isLeft:a,$isRight:i})=>e?a?"0 0 0 16px":i?"0 16px 0 0":"0":a?"16px 0 0 16px":i?"0 16px 16px 0":"16px"};
26
+ border-radius: ${({$columnHasHeader:e,$isLeft:a,$isRight:r})=>e?a?"0 0 0 16px":r?"0 16px 0 0":"0":a?"16px 0 0 16px":r?"0 16px 16px 0":"16px"};
22
27
  background-color: ${({theme:e})=>e.v2.colors.silver[900]};
23
28
  overflow-y: auto;
24
29
  overflow-x: hidden;
25
- `,le=({isLeft:e,isRight:a,heightOffset:i=0,width:r,header:t,list:s})=>q(re,{$width:r,$columnHasHeader:!!t,children:[t&&j(te,{children:t}),j(se,{$gap:8,$isLeft:e,$isRight:a,$heightOffset:i,$columnHasHeader:!!t,children:s.length?s.length>1?j(w,{gap:8,elements:s}):j(I,{children:s[0]}):j($,{$height:"100%",children:j(C,{})})})]}),ne="75vw",oe=J.div`
30
+ `,de=({isLeft:e,isRight:a,heightOffset:r=0,width:s,header:i,list:t})=>T(ne,{$width:s,$columnHasHeader:!!i,children:[i&&H(oe,{children:i}),H(le,{$gap:8,$isLeft:e,$isRight:a,$heightOffset:r,$columnHasHeader:!!i,children:t.length?t.length>1?H(w,{gap:8,elements:t}):H(N,{children:t[0]}):H($,{$height:"100%",children:H(C,{})})})]}),ce="75vw",pe=j.div`
26
31
  display: flex;
27
32
  flex-direction: column;
28
33
  border-radius: 16px;
29
34
  background-color: ${({theme:e})=>e.v2.colors.silver[1e3]};
30
35
  overflow: hidden;
31
- `,de=J.div`
36
+ `,ue=j.div`
32
37
  display: flex;
33
38
  gap: 12px;
34
39
  padding: 16px 16px 0 16px;
35
40
  background-color: ${({theme:e})=>e.v2.colors.silver[1e3]};
36
41
  position: sticky;
37
42
  top: 0;
38
- `,ce=J.div`
43
+ `,he=j.div`
39
44
  padding: 12px 12px 0 12px;
40
- `,pe=J.div`
45
+ `,ge=j.div`
41
46
  display: flex;
42
47
  gap: 12px;
43
48
  padding: 16px;
44
- `,he=J.div`
49
+ `,ve=j.div`
45
50
  padding: 5vh 10vw;
46
51
  border-radius: 12px;
47
52
  background-color: ${({theme:e})=>e.v2.colors.silver[800]};
48
- `,ue=J.div`
49
- display: flex;
50
- align-items: center;
51
- justify-content: flex-end;
52
- gap: 16px;
53
- padding: 0 12px;
54
- margin-top: auto;
55
- `,ge=E(({isOpen:e,withOverlay:a,disableAnimation:i,onClose:r,onBack:t,onNext:s,nextIsSkip:l,onSave:n,disableSave:o,connectionIds:d,header:c,subHeader:p,leftColumn:h,rightColumn:u,search:g,filters:v,errorMessage:m,isFormDirty:b,hideDirtyNote:x,isFetching:y,progress:w},C)=>{const[A,I]=F(!1),[V,W]=F(!1),[G,Y]=F(void 0);K(C,()=>({clearErrors:()=>Y(void 0)}));const B=V,E=()=>{b&&!A?I(!0):(I(!1),r?.())},J=o||V||"boolean"==typeof b&&!b,U=!!g||!!d||!!v,Z=!!p,_=(U?48:0)+(Z?50:0);return q(S,{width:ne,isOpen:e,disableAnimation:i,hideOverlay:!V&&!a,header:{...c,onClose:r?E:void 0,onCloseDisabled:B},children:[V?j($,{$height:"calc(100vh - 136px)",children:j(he,{children:j(L,{titleSize:M.S,subTitleSize:M.XXXS,withGradient:!0,withSpinner:!0,...w})})}):q(oe,{children:[U&&q(de,{children:[d&&j(k,{icon:z,title:"Selected Clusters",badge:{label:d.value.length}}),g&&j(O,{width:"100%",...g}),v]}),Z&&j(ce,{children:j(k,{icon:p.icon,title:p.title,subTitle:p.description,badge:p.badge})}),q(pe,{children:[j(le,{isLeft:!0,heightOffset:_,...h}),j(le,{isRight:!0,heightOffset:_,...u})]})]}),q(ue,{children:[y?j(L,{icon:X,title:"Fetching Data...",titleSize:M.XXS,withGradient:!0}):V?w?null:j(L,{icon:X,title:"Saving Changes...",titleSize:M.XXS,withGradient:!0}):G||m?j(D,{fullWidth:!0,status:H.Error,message:G||m}):"boolean"==typeof b&&b&&!x?j(D,{fullWidth:!0,status:H.Info,message:'The values don\'t reflect the current configurations of the selected clusters.\n"Save" will override the current configurations.'}):"boolean"!=typeof b||b||x?null:j(D,{fullWidth:!0,status:H.Success,message:"The values reflect the current configuration of the selected cluster."}),q(f,{$gap:8,children:[j("div",t?{style:{width:"150px"},children:j(N,{"data-id":"wide-drawer-back",fullWidth:!0,variant:T.Secondary,label:"Back",leftIcon:P,onClick:t})}:{style:{width:"150px"},children:j(N,{"data-id":"wide-drawer-cancel",fullWidth:!0,variant:T.Secondary,label:"Cancel",onClick:E,disabled:B})}),j("div",s?{style:{width:"150px"},children:j(N,l?{"data-id":"wide-drawer-skip",fullWidth:!0,variant:T.Secondary,label:"Skip",rightIcon:R,onClick:s}:{"data-id":"wide-drawer-next",fullWidth:!0,variant:T.Primary,label:"Next",rightIcon:R,onClick:s})}:{style:{width:"150px"},children:j(N,{"data-id":"wide-drawer-save",fullWidth:!0,variant:T.Primary,label:"Save",onClick:async()=>{W(!0);const e=await n();W(!1),e?.error?Y(e.error):(d?.setValue([]),r?.())},disabled:J})})]})]}),j(Q,{isOpen:A,onClose:()=>I(!1),onApprove:E})]})});ge.displayName=ge.name;export{Q as CancelModal,U as DeleteModal,Z as DynamicField,_ as OdigosLogoTextByTier,k as RichTitle,ae as SignalsCheckboxList,ie as UpgradeModal,ne as WIDE_DRAWER_WIDTH,ge as WideDrawer};
53
+ `,me=B(({isOpen:e,withOverlay:a,disableAnimation:r,onClose:s,onBack:i,onNext:t,nextIsSkip:n,onSave:o,disableSave:l,connectionIds:d,header:c,subHeader:p,leftColumn:u,rightColumn:h,search:g,filters:v,errorMessage:m,isFormDirty:b,hideDirtyNote:f,isFetching:x,progress:y},w)=>{const[C,A]=F(!1),[N,j]=F(!1),[q,V]=F(void 0);K(w,()=>({clearErrors:()=>V(void 0)}));const P=N,Y=X(()=>{b&&!C?A(!0):(A(!1),s?.())},[b,C,s]),Z=l||N||"boolean"==typeof b&&!b,B=X(async()=>{j(!0);const e=await o();j(!1),e?.error?V(e.error):(d?.setValue([]),s?.())},[o,d,s]),U=!!g||!!d||!!v,_=!!p,Q=(U?48:0)+(_?50:0),W=G(()=>x?{status:M.Info,message:"Fetching Data..."}:N&&!y?{status:M.Info,message:"Saving Changes..."}:q||m?{status:M.Error,message:q||m}:"boolean"==typeof b&&b&&!f?{status:M.Info,message:'The values don\'t reflect the current configurations of the selected clusters.\n"Save" will override the current configurations.'}:"boolean"!=typeof b||b||f?void 0:{status:M.Success,message:"The values reflect the current configuration of the selected cluster."},[x,N,y,q,m,b,f]),ee=G(()=>i?{label:"Back",leftIcon:z,variant:L.Secondary,onClick:i}:{label:"Cancel",variant:L.Secondary,onClick:Y,disabled:P},[i,Y,P]),ae=G(()=>t?n?{"data-id":"wide-drawer-skip",label:"Skip",rightIcon:R,variant:L.Secondary,onClick:t}:{"data-id":"wide-drawer-next",label:"Next",rightIcon:R,variant:L.Primary,onClick:t}:{"data-id":"wide-drawer-save",label:"Save",variant:L.Primary,onClick:B,disabled:Z},[t,n,B,Z]);return T(S,{width:ce,isOpen:e,disableAnimation:r,hideOverlay:!N&&!a,header:{...c,onClose:s?Y:void 0,onCloseDisabled:P},footer:{note:W,actions:[ee,ae]},children:[N?H($,{$height:"calc(100vh - 136px)",children:H(ve,{children:H(k,{titleSize:O.S,subTitleSize:O.XXXS,withGradient:!0,withSpinner:!0,...y})})}):T(pe,{children:[U&&T(ue,{children:[d&&H(D,{icon:E,title:"Selected Clusters",badge:{label:d.value.length}}),g&&H(I,{width:"100%",...g}),v]}),_&&H(he,{children:H(D,{icon:p.icon,title:p.title,subTitle:p.description,badge:p.badge})}),T(ge,{children:[H(de,{isLeft:!0,heightOffset:Q,...u}),H(de,{isRight:!0,heightOffset:Q,...h})]})]}),H(J,{isOpen:C,onClose:()=>A(!1),onApprove:Y})]})});me.displayName=me.name;export{J as CancelModal,W as ColoredSpan,U as ColoredSpanVariant,ee as DeleteModal,ae as DynamicField,re as OdigosLogoTextByTier,D as RichTitle,ie as SignalsCheckboxList,te as UpgradeModal,ce as WIDE_DRAWER_WIDTH,me as WideDrawer};
package/lib/snippets.js CHANGED
@@ -1 +1 @@
1
- export{b5 as AddButton,cF as CopyText,cA as EditButton,cz as Flow,dO as MapItemNode,dP as NoDataNode,cf as NoteBackToSummary,cH as PodContainer,cM as SourceContainer}from"./chunks/ui-components-CzlBPbLD.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";
1
+ export{cr as AddButton,e0 as CopyText,dX as EditButton,dW as Flow,f9 as MapItemNode,fa as NoDataNode,dC as NoteBackToSummary,e2 as PodContainer,e8 as SourceContainer}from"./chunks/ui-components-Dj10kYlT.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";
package/lib/store.js CHANGED
@@ -1 +1 @@
1
- export{ar as ProgressKeys,cy as useActiveNodeStore,cS as useDarkMode,E as useDataStreamStore,bc as useDrawerStore,ak as useEntityStore,bz as useFilterStore,bn as useModalStore,cq as useNotificationStore,aq as useProgressStore,bP as useSelectedStore,cc as useSetupStore}from"./chunks/ui-components-CzlBPbLD.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";
1
+ export{bo as ProgressKeys,dV as useActiveNodeStore,ee as useDarkMode,E as useDataStreamStore,cy as useDrawerStore,bi as useEntityStore,cV as useFilterStore,cJ as useModalStore,dN as useNotificationStore,bn as useProgressStore,d9 as useSelectedStore,dz as useSetupStore}from"./chunks/ui-components-Dj10kYlT.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";
package/lib/theme.js CHANGED
@@ -1 +1 @@
1
- export{dG as Provider,dH as animations,dI as opacity,dJ as palettes}from"./chunks/ui-components-CzlBPbLD.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";
1
+ export{f1 as Provider,f2 as animations,f3 as opacity,f4 as palettes}from"./chunks/ui-components-Dj10kYlT.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";
package/lib/types.js CHANGED
@@ -1 +1 @@
1
- export{cZ as ActionCategory,f as ActionKeyTypes,s as ActionType,c_ as AddNodeTypes,c$ as BooleanOperation,R as CodeAttributesKeyTypes,bm as Crud,Z as CustomInstrumentationsKeyTypes,bR as DesiredStateProgress,d0 as DestinationTypes,d1 as EdgeTypes,a9 as EntityTypes,r as FieldTypes,X as GolangCustomProbe,V as HeadersCollectionKeyTypes,k as InputTypes,d2 as InstallationMethod,_ as InstrumentationRuleType,d3 as IntrumentationStatus,Y as JavaCustomProbe,d4 as JsonOperation,K as K8sAttributesFrom,cL as K8sResourceKind,d5 as ListDirection,cw as NodeTypes,d6 as NumberOperation,d7 as OtelDistroName,cg as OtherEntityTypes,bw as OtherStatus,am as OtherStatusType,W as PayloadCollectionKeyTypes,d8 as PlatformType,d9 as PodContainerLifecycleStatus,da as PodContainerStatus,db as PodPhase,dc as Profile,au as ProgrammingLanguages,dd as SIGNAL_KEY_TO_TYPE,cl as SIGNAL_TYPE_TO_KEY,de as SignalKey,J as SignalType,df as SortDirection,Q as StatusType,dg as StringOperation,a8 as Tier,aT as WorkloadRolloutStatus}from"./chunks/ui-components-CzlBPbLD.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";
1
+ export{ek as ActionCategory,f as ActionKeyTypes,s as ActionType,el as AddNodeTypes,em as BooleanOperation,R as CodeAttributesKeyTypes,cI as Crud,Z as CustomInstrumentationsKeyTypes,db as DesiredStateProgress,en as DestinationTypes,eo as EdgeTypes,a9 as EntityTypes,r as FieldTypes,X as GolangCustomProbe,V as HeadersCollectionKeyTypes,k as InputTypes,ep as InstallationMethod,_ as InstrumentationRuleType,eq as IntrumentationStatus,Y as JavaCustomProbe,er as JsonOperation,K as K8sAttributesFrom,e7 as K8sResourceKind,es as ListDirection,dT as NodeTypes,et as NumberOperation,eu as OtelDistroName,dD as OtherEntityTypes,cS as OtherStatus,bk as OtherStatusType,W as PayloadCollectionKeyTypes,ev as PlatformType,ew as PodContainerLifecycleStatus,ex as PodContainerStatus,ey as PodPhase,ez as Profile,aG as ProgrammingLanguages,eA as SIGNAL_KEY_TO_TYPE,dI as SIGNAL_TYPE_TO_KEY,eB as SignalKey,J as SignalType,eC as SortDirection,Q as StatusType,eD as StringOperation,a8 as Tier,c0 as WorkloadRolloutStatus}from"./chunks/ui-components-Dj10kYlT.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";
package/lib/visuals.js CHANGED
@@ -1 +1 @@
1
- export{e0 as VISUAL_ODIGOS_LOGO_HEIGHT,e1 as VISUAL_ODIGOS_LOGO_WIDTH,cY as VisualGreenRings,e2 as VisualOdigosLogo}from"./chunks/ui-components-CzlBPbLD.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";
1
+ export{fn as VISUAL_ODIGOS_LOGO_HEIGHT,fo as VISUAL_ODIGOS_LOGO_WIDTH,ej as VisualGreenRings,fp as VisualOdigosLogo}from"./chunks/ui-components-Dj10kYlT.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odigos/ui-kit",
3
- "version": "0.0.218",
3
+ "version": "0.0.219",
4
4
  "author": "Odigos",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -103,8 +103,8 @@
103
103
  }
104
104
  },
105
105
  "peerDependencies": {
106
- "react": "19.2.4",
107
- "react-dom": "19.2.4",
106
+ "react": "19.2.5",
107
+ "react-dom": "19.2.5",
108
108
  "styled-components": "6.3.12"
109
109
  },
110
110
  "dependencies": {
@@ -113,11 +113,11 @@
113
113
  "javascript-time-ago": "^2.6.4",
114
114
  "lottie-react": "^2.4.1",
115
115
  "prism-react-renderer": "^2.4.1",
116
- "react": "19.2.4",
117
- "react-dom": "19.2.4",
116
+ "react": "19.2.5",
117
+ "react-dom": "19.2.5",
118
118
  "react-error-boundary": "^6.1.1",
119
119
  "styled-components": "6.3.12",
120
- "virtua": "^0.49.0",
120
+ "virtua": "^0.49.1",
121
121
  "zustand": "^5.0.12"
122
122
  },
123
123
  "devDependencies": {
@@ -132,23 +132,23 @@
132
132
  "@rollup/plugin-terser": "^1.0.0",
133
133
  "@rollup/plugin-typescript": "^12.3.0",
134
134
  "@storybook/addon-webpack5-compiler-babel": "^4.0.1",
135
- "@storybook/react-webpack5": "10.3.4",
136
- "@types/node": "^25.5.2",
135
+ "@storybook/react-webpack5": "10.3.5",
136
+ "@types/node": "^25.6.0",
137
137
  "@types/react": "^19.2.14",
138
138
  "@types/react-dom": "^19.2.3",
139
- "@typescript-eslint/eslint-plugin": "^8.58.0",
140
- "@typescript-eslint/parser": "^8.58.0",
139
+ "@typescript-eslint/eslint-plugin": "^8.58.1",
140
+ "@typescript-eslint/parser": "^8.58.1",
141
141
  "babel-loader": "^10.1.1",
142
142
  "babel-plugin-styled-components": "^2.1.4",
143
143
  "eslint": "^9.39.4",
144
144
  "eslint-plugin-react": "^7.37.5",
145
- "eslint-plugin-storybook": "10.3.4",
146
- "postcss": "^8.5.8",
145
+ "eslint-plugin-storybook": "10.3.5",
146
+ "postcss": "^8.5.9",
147
147
  "rollup": "^4.60.1",
148
148
  "rollup-plugin-filesize": "^10.0.0",
149
149
  "rollup-plugin-postcss": "^4.0.2",
150
150
  "rollup-plugin-visualizer": "^7.0.1",
151
- "storybook": "10.3.4",
151
+ "storybook": "10.3.5",
152
152
  "typescript": "^5.9.3"
153
153
  }
154
154
  }
@@ -1,26 +0,0 @@
1
- import type { SamplingRuleCategory } from '../../sampling-rules-list/types';
2
- export { BTN_CANCEL, SECTION_SAMPLING_PREVIEW, SECTION_SOURCE_SCOPE, SECTION_OPERATION, SECTION_DURATION, SECTION_ERRORS, LABEL_RULE_NAME, LABEL_RULE_TYPE, LABEL_NOTE, LABEL_HTTP_ROUTE, LABEL_METHOD, LABEL_KEEP_PERCENTAGE, LABEL_DROP_PERCENTAGE, LABEL_KEEP_TRACES_DURATION, LABEL_KEEP_TRACES_ERRORS, LABEL_KEEP_AT_LEAST, LABEL_KEEP_AT_MOST, CATEGORY_DESCRIPTIONS, } from '../../sampling-rules-list/constants';
3
- export declare const SAMPLING_DRAWER_WIDTH = "60vw";
4
- export declare const LABEL_HTTP_ROUTE_PREFIX = "HTTP route prefix";
5
- export declare const LABEL_TEMPLATED_PATH = "Templated path";
6
- export declare const LABEL_TEMPLATED_PATH_PREFIX = "Templated path prefix";
7
- export declare const LABEL_KAFKA_TOPIC = "Kafka topic";
8
- export declare const LABEL_CUSTOM_DURATION = "Custom duration (ms)";
9
- export declare const LABEL_CUSTOM_PERCENTAGE = "Custom percentage";
10
- export declare const LABEL_NO_PREVIEW = "No preview available";
11
- export declare const LABEL_SERVER_ADDRESS = "Server address";
12
- export declare const PLACEHOLDER_SERVER_ADDRESS = "e.g. collector.my.vendor.com";
13
- export declare const PLACEHOLDER_RULE_NAME = "Type rule name";
14
- export declare const PLACEHOLDER_NOTE = "Add note here...";
15
- export declare const TOOLTIP_NOTE = "Optional notes (not used by the system). Add any context or details for this sampling rule.";
16
- export declare const PLACEHOLDER_ROUTE = "Type here";
17
- export declare const PLACEHOLDER_SEARCH_SOURCE = "Search source name";
18
- export declare const NOTE_ENTIRE_CLUSTER = "Rule will apply to all sources in the cluster";
19
- export declare const BTN_CREATE_RULE = "Create rule";
20
- export declare const DESC_SOURCE_SCOPE = "Define which operations this rule applies to. You can target specific endpoints or requests, or apply the rule to all operations in the selected services.";
21
- export declare const DESC_OPERATION = "Define which operations this rule applies to. You can target specific endpoints or requests, or apply the rule to all operations in the selected services.";
22
- export declare const DESC_DURATION = "Define a duration threshold for this rule. Traces with a duration longer than the specified value will be considered important and retained.";
23
- export declare const DESC_ERRORS = "Retain traces with errors from the selected services and operations.";
24
- export declare const DESC_KEEP_PERCENTAGE = "Specify the exact percentage of matching traces to keep";
25
- export declare const DESC_DROP_PERCENTAGE = "Specify the exact percentage of matching traces to drop";
26
- export declare const CATEGORY_TITLES: Record<SamplingRuleCategory, string>;
@@ -1,10 +0,0 @@
1
- export declare const DRAWER_TITLE = "Edit 'Noisy Operation' auto rule";
2
- export declare const DRAWER_SUBTITLE = "Automatically detect and sample health probe traces across the cluster.";
3
- export declare const SECTION_TITLE = "Auto rule - Kubernetes Health Probes";
4
- export declare const LABEL_RULE_ENABLED = "Rule Enabled";
5
- export declare const SECTION_KEEP_PERCENTAGE = "Keep Percentage";
6
- export declare const DESC_KEEP_PERCENTAGE = "Specify the exact percentage of matching traces to keep";
7
- export declare const LABEL_KEEP_AT_LEAST = "Keep at least this percentage of matching traces";
8
- export declare const LABEL_CUSTOM_PERCENTAGE = "Custom percentage";
9
- export declare const BTN_CANCEL = "Cancel";
10
- export declare const BTN_SAVE = "Save";
@@ -1,8 +0,0 @@
1
- export type PercentagePreset = '50' | '25' | '10' | '1' | 'custom';
2
- export interface EditAutoRuleDrawerProps {
3
- isOpen: boolean;
4
- enabled: boolean;
5
- keepPercentage: number;
6
- onClose: () => void;
7
- onSave: (enabled: boolean, keepPercentage: number) => void;
8
- }
@@ -1,10 +0,0 @@
1
- export declare const DRAWER_TITLE = "Edit 'Cost Reduction' auto rule";
2
- export declare const DRAWER_SUBTITLE = "Automatically drop a percentage of traces across the entire cluster.";
3
- export declare const SECTION_TITLE = "Auto rule - Drop Traces Cluster-Wide";
4
- export declare const LABEL_RULE_ENABLED = "Rule Enabled";
5
- export declare const SECTION_DROP_PERCENTAGE = "Drop Percentage";
6
- export declare const DESC_DROP_PERCENTAGE = "Specify the exact percentage of matching traces to drop";
7
- export declare const LABEL_DROP_AT_MOST = "Drop at most this percentage of matching traces";
8
- export declare const LABEL_CUSTOM_PERCENTAGE = "Custom percentage";
9
- export declare const BTN_CANCEL = "Cancel";
10
- export declare const BTN_SAVE = "Save";
@@ -1,8 +0,0 @@
1
- export type PercentagePreset = '50' | '25' | '10' | '1' | 'custom';
2
- export interface EditCostReductionAutoRuleDrawerProps {
3
- isOpen: boolean;
4
- enabled: boolean;
5
- dropPercentage: number;
6
- onClose: () => void;
7
- onSave: (enabled: boolean, dropPercentage: number) => void;
8
- }
@@ -1,6 +0,0 @@
1
- export declare const DRAWER_TITLE = "Edit 'Highly Relevant' auto rule";
2
- export declare const DRAWER_SUBTITLE = "Automatically keep all error traces across the entire cluster.";
3
- export declare const SECTION_TITLE = "Auto rule - Keep All Error Traces";
4
- export declare const LABEL_RULE_ENABLED = "Rule Enabled";
5
- export declare const BTN_CANCEL = "Cancel";
6
- export declare const BTN_SAVE = "Save";
@@ -1,6 +0,0 @@
1
- export interface EditHighlyRelevantAutoRuleDrawerProps {
2
- isOpen: boolean;
3
- enabled: boolean;
4
- onClose: () => void;
5
- onSave: (enabled: boolean) => void;
6
- }
@@ -1,19 +0,0 @@
1
- import type { ViewRuleData } from './types';
2
- export { SAMPLING_DRAWER_WIDTH } from '../create-sampling-rule-drawer/constants';
3
- export { UNNAMED_RULE, LABEL_DISABLED_RULE, BTN_EDIT_RULE, BTN_CANCEL, SECTION_SAMPLING_PREVIEW, SECTION_SOURCE_SCOPE, SECTION_OPERATION, SECTION_DURATION, SECTION_ERRORS, LABEL_RULE_NAME, LABEL_RULE_TYPE, LABEL_NOTE, LABEL_HTTP_ROUTE, LABEL_METHOD, LABEL_KEEP_PERCENTAGE, LABEL_DROP_PERCENTAGE, LABEL_KEEP_TRACES_DURATION, LABEL_KEEP_TRACES_ERRORS, LABEL_KEEP_AT_LEAST, LABEL_KEEP_AT_MOST, CATEGORY_DESCRIPTIONS, } from '../../sampling-rules-list/constants';
4
- export declare const ALL_SOURCES = "All sources";
5
- export declare const EMPTY_VALUE = "-";
6
- export declare const LABEL_RULE_ENABLED = "Rule Enabled";
7
- export declare const LABEL_OPERATION_TYPE = "Operation type";
8
- export declare const LABEL_SAMPLE = "Sample";
9
- export declare const LABEL_KEEP_ALL = "Keep all";
10
- export declare const LABEL_DROP_ALL = "Drop all";
11
- export declare const BTN_DELETE_RULE = "Delete rule";
12
- export declare const BTN_SAVE_RULE = "Save";
13
- export declare const EDIT_TITLES: Record<ViewRuleData['category'], string>;
14
- export declare const OPERATION_ALL = "All operations";
15
- export declare const OPERATION_HTTP_SERVER = "HTTP server endpoint";
16
- export declare const OPERATION_HTTP_CLIENT = "HTTP client endpoint";
17
- export declare const OPERATION_KAFKA_CONSUMER = "Kafka consumer";
18
- export declare const OPERATION_KAFKA_PRODUCER = "Kafka producer";
19
- export declare const CATEGORY_LABELS: Record<ViewRuleData['category'], string>;
@@ -1,4 +0,0 @@
1
- export declare const SectionCard: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
2
- export declare const FlexSectionCard: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>, never>> & string;
3
- export declare const CellsRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
4
- export declare const Cell: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
@@ -1 +0,0 @@
1
- export type { ViewRuleData } from '../../sampling-rules-list/types';
@@ -1 +0,0 @@
1
- export declare const BTN_EDIT_AUTO_RULE = "Edit auto rule";
@@ -1,19 +0,0 @@
1
- import type { HighlyRelevantOperationRule, CostReductionRule, SamplingRules } from '@/types';
2
- import type { SummaryPart } from '../sampling-rules-list/types';
3
- export interface K8sHealthProbesConfig {
4
- enabled: boolean | null;
5
- keepPercentage: number | null;
6
- }
7
- export declare function buildAutoRuleSummary(config: K8sHealthProbesConfig | null): SummaryPart[];
8
- export interface HighlyRelevantAutoRuleMatch {
9
- rule: HighlyRelevantOperationRule;
10
- samplingId: string;
11
- }
12
- export declare function findHighlyRelevantAutoRule(groups: SamplingRules[]): HighlyRelevantAutoRuleMatch | null;
13
- export declare function buildHighlyRelevantAutoRuleSummary(rule: HighlyRelevantOperationRule | null): SummaryPart[];
14
- export interface CostReductionAutoRuleMatch {
15
- rule: CostReductionRule;
16
- samplingId: string;
17
- }
18
- export declare function findCostReductionAutoRule(groups: SamplingRules[]): CostReductionAutoRuleMatch | null;
19
- export declare function buildCostReductionAutoRuleSummary(rule: CostReductionRule | null): SummaryPart[];
@@ -1,5 +0,0 @@
1
- import { type FC } from 'react';
2
- import type { AutoRuleCardProps } from './types';
3
- export type { AutoRuleCardProps } from './types';
4
- export { buildAutoRuleSummary, type K8sHealthProbesConfig, findHighlyRelevantAutoRule, buildHighlyRelevantAutoRuleSummary, type HighlyRelevantAutoRuleMatch, findCostReductionAutoRule, buildCostReductionAutoRuleSummary, type CostReductionAutoRuleMatch, } from './helpers';
5
- export declare const AutoRuleCard: FC<AutoRuleCardProps>;
@@ -1,6 +0,0 @@
1
- import type { SummaryPart } from '../sampling-rules-list/types';
2
- export interface AutoRuleCardProps {
3
- title: string;
4
- summary: SummaryPart[];
5
- onEdit: () => void;
6
- }
@@ -1,23 +0,0 @@
1
- import type { SamplingRuleCategory } from './types';
2
- export declare const UNNAMED_RULE = "Unnamed rule";
3
- export declare const LABEL_DISABLED_RULE = "Disabled rule";
4
- export declare const BTN_EDIT_RULE = "Edit rule";
5
- export declare const BTN_CANCEL = "Cancel";
6
- export declare const SECTION_SAMPLING_PREVIEW = "Sampling Preview";
7
- export declare const SECTION_SOURCE_SCOPE = "Source Scope";
8
- export declare const SECTION_OPERATION = "Operation";
9
- export declare const SECTION_DURATION = "Duration";
10
- export declare const SECTION_ERRORS = "Errors";
11
- export declare const LABEL_RULE_NAME = "Rule name";
12
- export declare const LABEL_RULE_TYPE = "Rule type";
13
- export declare const LABEL_NOTE = "Note";
14
- export declare const LABEL_HTTP_ROUTE = "HTTP route";
15
- export declare const LABEL_METHOD = "Method";
16
- export declare const LABEL_KEEP_PERCENTAGE = "Keep Percentage";
17
- export declare const LABEL_DROP_PERCENTAGE = "Drop Percentage";
18
- export declare const LABEL_KEEP_TRACES_DURATION = "Keep traces with duration larger than";
19
- export declare const LABEL_KEEP_TRACES_ERRORS = "Keep traces with errors";
20
- export declare const LABEL_KEEP_AT_LEAST = "Keep at least this percentage of matching traces";
21
- export declare const LABEL_KEEP_AT_MOST = "Keep at most this percentage of matching traces";
22
- export declare const FILTER_TYPE_ALL = "All";
23
- export declare const CATEGORY_DESCRIPTIONS: Record<SamplingRuleCategory, string>;
@@ -1,6 +0,0 @@
1
- import { type FC } from 'react';
2
- import type { SamplingRulesListProps } from './types';
3
- export type { SamplingRuleItem, SamplingRuleCategory, SamplingRulesListProps, SummaryPart, SummaryPartVariant, HighlyRelevantBadgeType, ViewRuleData, TypeFilter } from './types';
4
- export type { DuplicateCheckInput } from './helpers';
5
- export { SamplingCategory, SAMPLING_SEGMENT_OPTIONS, SAMPLING_CATEGORY_NOTES, SAMPLING_CATEGORY_LIST_TITLES, CATEGORY_TO_RULE_CATEGORY, buildNoisySummary, buildHighlyRelevantSummary, buildCostReductionSummary, getHighlyRelevantTypeBadge, buildSummaryForRule, buildSamplingRuleItems, refreshViewRuleData, lookupViewRuleData, findDuplicateRuleId, } from './helpers';
6
- export declare const SamplingRulesList: FC<SamplingRulesListProps>;
@@ -1,12 +0,0 @@
1
- import { type FC } from 'react';
2
- import type { SamplingRuleItem } from './types';
3
- export interface RuleRowProps {
4
- item: SamplingRuleItem;
5
- isHovered: boolean;
6
- onClick: (item: SamplingRuleItem) => void;
7
- onEdit: (ruleId: string, samplingId: string) => void;
8
- onDelete: (ruleId: string, samplingId: string) => void;
9
- onMouseEnter: () => void;
10
- onMouseLeave: () => void;
11
- }
12
- export declare const RuleRow: FC<RuleRowProps>;
@@ -1,10 +0,0 @@
1
- import React, { type FC } from 'react';
2
- import type { SummaryPart, SummaryPartVariant } from './types';
3
- export declare const MONO_VARIANTS: SummaryPartVariant[];
4
- export declare const SummarySpan: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {
5
- $variant: SummaryPartVariant;
6
- $isMono: boolean;
7
- }>> & string;
8
- export declare const SummaryParts: FC<{
9
- parts: SummaryPart[];
10
- }>;
@@ -1,47 +0,0 @@
1
- import type { NoisyOperationRule, HighlyRelevantOperationRule, CostReductionRule } from '@/types';
2
- export type SamplingRuleCategory = 'noisy' | 'highlyRelevant' | 'costReduction';
3
- export type SummaryPartVariant = 'default' | 'action' | 'endpoint' | 'scope' | 'duration';
4
- export interface SummaryPart {
5
- text: string;
6
- variant: SummaryPartVariant;
7
- }
8
- export type HighlyRelevantBadgeType = 'Relevance' | 'Duration' | 'Error';
9
- export interface SamplingRuleItem {
10
- ruleId: string;
11
- samplingId: string;
12
- name: string | null;
13
- disabled: boolean;
14
- notes: string | null;
15
- summary: SummaryPart[];
16
- category: SamplingRuleCategory;
17
- typeBadge?: HighlyRelevantBadgeType;
18
- }
19
- export type TypeFilter = 'all' | HighlyRelevantBadgeType;
20
- export interface SamplingRulesListProps {
21
- title: string;
22
- titleTooltip?: string;
23
- items: SamplingRuleItem[];
24
- isLoading?: boolean;
25
- showTypeFilter?: boolean;
26
- onRuleClick: (item: SamplingRuleItem) => void;
27
- onEditRule: (ruleId: string, samplingId: string) => void;
28
- onDeleteRule: (ruleId: string, samplingId: string) => void;
29
- }
30
- interface BaseViewRule {
31
- samplingId: string;
32
- summary: SummaryPart[];
33
- }
34
- interface ViewNoisyRule extends BaseViewRule {
35
- category: Extract<SamplingRuleCategory, 'noisy'>;
36
- rule: NoisyOperationRule;
37
- }
38
- interface ViewHighlyRelevantRule extends BaseViewRule {
39
- category: Extract<SamplingRuleCategory, 'highlyRelevant'>;
40
- rule: HighlyRelevantOperationRule;
41
- }
42
- interface ViewCostReductionRule extends BaseViewRule {
43
- category: Extract<SamplingRuleCategory, 'costReduction'>;
44
- rule: CostReductionRule;
45
- }
46
- export type ViewRuleData = ViewNoisyRule | ViewHighlyRelevantRule | ViewCostReductionRule;
47
- export {};
@@ -1,6 +1,6 @@
1
1
  import { type FC } from 'react';
2
- import { type AutocompleteOption } from '@/components/_v2';
3
2
  import type { SamplingRuleFormState } from '../types';
3
+ import { type AutocompleteOption } from '@/components/_v2';
4
4
  export interface FormSourceScopeProps {
5
5
  formState: SamplingRuleFormState;
6
6
  onChange: (updates: Partial<SamplingRuleFormState>) => void;