@odigos/ui-kit 0.0.254 → 0.0.256

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 (60) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/docs/api-context.md +1 -1
  3. package/lib/chunks/{connections-scope-DDNmfpzA.js → connections-scope-D_2Q866B.js} +1 -1
  4. package/lib/chunks/consts-D6GCMJ6c.js +1 -0
  5. package/lib/chunks/{helpers-Cy9W3KCg.js → helpers-CUmUiA_l.js} +1 -1
  6. package/lib/chunks/index-hiRPXsEi.js +155 -0
  7. package/lib/chunks/{source-instrument-form-context-BJGS7jKX.js → source-instrument-form-context-DaQkZ03_.js} +1 -1
  8. package/lib/chunks/{ui-components-D_eeOuIL.js → ui-components-B1TCLO_N.js} +225 -233
  9. package/lib/chunks/{use-odigos-api-W15RTo5l.js → use-odigos-api-BMcghWbA.js} +2 -2
  10. package/lib/components/_v2/icon-group/index.d.ts +4 -3
  11. package/lib/components/_v2/no-data/index.d.ts +2 -2
  12. package/lib/components/v2.js +1 -1
  13. package/lib/components.js +1 -1
  14. package/lib/constants/strings/index.d.ts +1 -0
  15. package/lib/constants.js +1 -1
  16. package/lib/containers/service-map/helpers/build-edges.d.ts +1 -1
  17. package/lib/containers/service-map/helpers/build-map-nodes.d.ts +2 -3
  18. package/lib/containers/service-map/helpers/consts.d.ts +1 -0
  19. package/lib/containers/service-map/helpers/elk-layout.d.ts +4 -3
  20. package/lib/containers/service-map/helpers/types.d.ts +21 -0
  21. package/lib/containers/service-map/index.d.ts +2 -10
  22. package/lib/containers/service-map/react-flow/edges/animated-traffic-edge.d.ts +6 -0
  23. package/lib/containers/service-map/react-flow/flow.d.ts +7 -0
  24. package/lib/containers/service-map/react-flow/index.d.ts +1 -0
  25. package/lib/containers/service-map/react-flow/nodes/map-item-node.d.ts +6 -0
  26. package/lib/containers/service-map/react-flow/nodes/no-data-node.d.ts +6 -0
  27. package/lib/containers/service-map/react-flow/search-and-select-nodes.d.ts +3 -0
  28. package/lib/containers/service-map/service-map-context.d.ts +24 -0
  29. package/lib/containers/v2.js +138 -138
  30. package/lib/containers.js +76 -20
  31. package/lib/contexts/odigos-api/capabilities.d.ts +1 -0
  32. package/lib/contexts/odigos-api/hooks/use-snapshots-api.d.ts +3 -0
  33. package/lib/contexts/odigos-api/index.d.ts +1 -1
  34. package/lib/contexts/odigos-api/types.d.ts +14 -4
  35. package/lib/contexts/odigos-api.js +1 -1
  36. package/lib/contexts.js +1 -1
  37. package/lib/functions/get-nearest-typography-size/index.d.ts +3 -0
  38. package/lib/functions/index.d.ts +1 -0
  39. package/lib/functions.js +1 -1
  40. package/lib/hooks.js +1 -1
  41. package/lib/snippets/index.d.ts +1 -1
  42. package/lib/snippets/v2.js +1 -1
  43. package/lib/snippets.js +1 -1
  44. package/lib/store/index.d.ts +0 -1
  45. package/lib/store/useDrawerStore.d.ts +2 -1
  46. package/lib/store.js +1 -1
  47. package/lib/theme.js +1 -1
  48. package/lib/types/index.d.ts +0 -1
  49. package/lib/types.js +1 -1
  50. package/lib/visuals.js +1 -1
  51. package/package.json +1 -1
  52. package/lib/chunks/flow-Bu1VbeQt.js +0 -49
  53. package/lib/chunks/index-D2nQHheF.js +0 -155
  54. package/lib/containers/service-map/service-map-drawer.d.ts +0 -17
  55. package/lib/snippets/react-flow/flow.d.ts +0 -17
  56. package/lib/snippets/react-flow/index.d.ts +0 -3
  57. package/lib/snippets/react-flow/nodes/map-item-node.d.ts +0 -13
  58. package/lib/snippets/react-flow/nodes/no-data-node.d.ts +0 -9
  59. package/lib/store/useActiveNodeStore.d.ts +0 -11
  60. package/lib/types/data-flow/index.d.ts +0 -21
package/lib/containers.js CHANGED
@@ -1,34 +1,90 @@
1
- import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{useState as i,useRef as n,useCallback as a,useEffect as o}from"react";import{MarkerType as s,useNodesState as c,useEdgesState as l}from"@xyflow/react";import{b as d,D as p,E as u,i as g,j as m,k as h,S as y,l as f,T as v,m as x,n as S,a as N,o as b,p as k,q as w}from"./chunks/ui-components-D_eeOuIL.js";import{UserIcon as K,ImageErrorIcon as M,ChevronDownIcon as T,ChevronRightIcon as $}from"./icons.js";import I,{useTheme as z}from"styled-components";import C from"elkjs/lib/elk.bundled.js";import{d as E}from"./chunks/use-odigos-api-W15RTo5l.js";import{F as G}from"./chunks/flow-Bu1VbeQt.js";import"zustand";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";import"@apollo/client";import"@apollo/client/link/error";import"@apollo/client/link/context";import"@apollo/client/utilities";import"@xyflow/react/dist/style.css";const V=e=>`${u.Source}-${e}-${d.MapItem}`,j=(e,t,r)=>{const i=e.isVirtual,n=r?[K]:i?[g(e)]:t?m(t):[M],{priorotizedStatus:a}=i?{priorotizedStatus:void 0}:h(t?.conditions||[]);return{id:e.graphKey,title:e.serviceName,icons:n,isVirtual:i,status:a,aggService:e}},A=e=>!(!e||"user"!==e.serviceName||e.id.namespace||e.id.name||e.id.kind),D=({theme:e,nodes:t,aggregatedServiceMap:r})=>{const i=[],n=new Map(t.map(e=>[e.id,e]));for(const t of r){const r=V(t.graphKey),a=n.get(r);if(!a)continue;const o=a.data?.status===y.Error;for(const a of t.connections){const c=V(a.targetGraphKey);n.has(c)&&i.push({id:`${r}-to-${c}`,type:"smoothstep",source:r,target:c,data:{sourceGraphKey:t.graphKey,targetGraphKey:a.targetGraphKey},markerEnd:{type:s.ArrowClosed},style:{stroke:o?e?.colors.dark_red:e?.colors.border}})}}return i},R=new C,O=`${u.Source}-user-${d.MapItem}`,q={"elk.algorithm":"layered","elk.direction":"RIGHT","elk.layered.spacing.nodeNodeBetweenLayers":"150","elk.spacing.nodeNode":"120","elk.layered.nodePlacement.strategy":"NETWORK_SIMPLEX","elk.layered.spacing.edgeEdgeBetweenLayers":"30","elk.layered.spacing.edgeNodeBetweenLayers":"40"},_=e=>{const t=e.lastIndexOf("|");return-1===t?{graphKey:e,detail:""}:{graphKey:e.substring(0,t),detail:e.substring(t+1)}},B=I.div`
2
- padding: 8px 0;
3
- `,F=I.div`
1
+ import{jsx as e,jsxs as t,Fragment as i}from"react/jsx-runtime";import o,{useTheme as r}from"styled-components";import{memo as a,useState as s,useCallback as n,useEffect as d,useMemo as l,createContext as c,useContext as p,useRef as u}from"react";import{U as m}from"./chunks/consts-D6GCMJ6c.js";import{MarkerType as g,useNodesState as h,useEdgesState as f,Handle as v,Position as y,getSmoothStepPath as N,BaseEdge as S,EdgeLabelRenderer as b,ReactFlowProvider as x,ReactFlow as w,Background as k,Controls as M,ControlButton as T,useReactFlow as C}from"@xyflow/react";import{N as I,o as $,p as E,q as K,r as V,v as _,w as z,b as A,c as L,x as R,y as X,B as j,z as D,L as P,M as q,O as G,Q as F,R as H}from"./chunks/ui-components-B1TCLO_N.js";import{UserIcon as O,ImageErrorIcon as B,RefreshIcon as U}from"./icons.js";import Y from"elkjs/lib/elk.bundled.js";import{d as W}from"./chunks/use-odigos-api-BMcghWbA.js";import"@xyflow/react/dist/style.css";import"zustand";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";import"@apollo/client";import"@apollo/client/link/error";import"@apollo/client/link/context";import"@apollo/client/utilities";const Z=o.div`
2
+ padding: 12px;
3
+ border-radius: 12px;
4
+ background-color: ${({theme:e})=>e.v2.colors.silver[750]};
5
+ `,Q=a(({id:t,data:i})=>e(Z,{"data-id":t,children:e(I,{...i})}));Q.displayName=Q.name;var J,ee;!function(e){e.MapItem="map-item",e.NoData="no-data"}(J||(J={})),function(e){e.AnimatedTraffic="animated-traffic"}(ee||(ee={}));const te=(e,t,i)=>{if(i)return{icons:[O],selected:!0};const o=e.isVirtual,r=o?[K(e)]:t?V(t):[B],{priorotizedStatus:a}=o?{priorotizedStatus:void 0}:_(t?.conditions||[]);return{icons:r,status:a,isVirtual:o,aggService:e,selected:!0}},ie=e=>!(!e||e.serviceName!==m||e.id.namespace||e.id.name||e.id.kind),oe=new Y,re={"elk.algorithm":"layered","elk.direction":"RIGHT","elk.layered.spacing.nodeNodeBetweenLayers":"150","elk.spacing.nodeNode":"120","elk.layered.nodePlacement.strategy":"NETWORK_SIMPLEX","elk.layered.spacing.edgeEdgeBetweenLayers":"30","elk.layered.spacing.edgeNodeBetweenLayers":"40"},ae=e=>{const t=e.lastIndexOf("|");return-1===t?{graphKey:e,detail:""}:{graphKey:e.substring(0,t),detail:e.substring(t+1)}},se={id:{namespace:"",name:"",kind:""},serviceName:m,markedForInstrumentation:{markedForInstrumentation:!0}},ne=c(null),de=()=>{const e=p(ne);if(!e)throw new Error("useServiceMapContext must be used within a ServiceMapProvider");return e},le=({serviceMap:t,children:i})=>{const o=r(),{sourcesApi:a}=W(),{items:c}=a.useSources(),[p,u,v]=h([]),[y,N,S]=f([]),[b,x]=s(0),w=n(()=>x(e=>e+1),[]),[k,M]=s(""),[T,C]=s(null),[I,K]=s(null),V=n(e=>{K(t=>t===e?null:e)},[]),_=n((e,t)=>{const i=new Set(e);u(e=>e.map(e=>e.type===J.MapItem&&i.has(e.id)?{...e,data:{...e.data,selected:t}}:e))},[u]),z=n(()=>{K(null)},[]);d(()=>{let e=!1;const i=(e=>{const t=new Map,i=new Set,o=(e,i,o=!1)=>{let r=t.get(e);return r||(r={serviceName:i,isVirtual:o,attributes:{},connectionMap:new Map},t.set(e,r)),r},r=(e,t)=>{if(t)for(const{key:i,value:o}of t)i in e||(e[i]=o)};for(const t of e){const{graphKey:e}=ae(t.nodeId),a=o(e,t.serviceName);a.isVirtual=!1;for(const e of t.services){const{graphKey:t,detail:s}=ae(e?.nodeId??"");e.isVirtual&&(i.add(t),r(o(t,e.serviceName,!0).attributes,e.nodeAttributes));let n=a.connectionMap.get(t);if(n||(n={targetGraphKey:t,targetServiceName:e.serviceName,totalRequests:0,lastDateTime:e.dateTime,details:[]},a.connectionMap.set(t,n)),n.totalRequests+=e.requests,e.dateTime>n.lastDateTime&&(n.lastDateTime=e.dateTime),s){const t=n.details.find(e=>e.value===s);t?(t.requests+=e.requests,e.dateTime>t.dateTime&&(t.dateTime=e.dateTime)):n.details.push({value:s,requests:e.requests,dateTime:e.dateTime})}}}const a=[...t.entries()];for(const[,{connectionMap:e}]of a)for(const[r,a]of e)t.has(r)||o(r,a.targetServiceName,i.has(r));const s=[];for(const[e,{serviceName:i,isVirtual:o,attributes:r,connectionMap:a}]of t){const t=[...a.values()];t.sort((e,t)=>e.targetGraphKey.localeCompare(t.targetGraphKey)),s.push({graphKey:e,serviceName:i,isVirtual:o,connections:t,attributes:r})}return s.sort((e,t)=>e.graphKey.localeCompare(t.graphKey)),s})(t),r=(({sources:e,aggregatedServiceMap:t})=>{const i=[],o={x:0,y:0};if(t.length&&e.length)for(const r of t){const t=e.find(e=>r.serviceName===e.serviceName||r.serviceName===e.id.name),a=ie(t);i.push({id:r.graphKey,type:J.MapItem,position:o,data:te(r,t,a),measured:{width:80,height:80}})}else i.push({id:J.NoData,type:J.NoData,position:o,data:{subTitle:E.ARE_SERVICES_INSTRUMENTED_AND_PRODUCING_TRAFFIC}});return i})({aggregatedServiceMap:i,sources:[se].concat(c)});if(1===r.length&&r[0].id===J.NoData)return u(r),N([]),M(""),void w();const a=(({theme:e,nodes:t,aggregatedServiceMap:i})=>{const o=[],r=new Map(t.map(e=>[e.id,e]));for(const t of i){const i=t.graphKey,a=r.get(i);if(!a)continue;const s=a.data?.status===$.Error;for(const a of t.connections){const n=a.targetGraphKey;r.has(n)&&o.push({id:`${i}-to-${n}`,type:"smoothstep",source:i,target:n,data:{sourceGraphKey:t.graphKey,targetGraphKey:a.targetGraphKey},markerEnd:{type:g.ArrowClosed},style:{stroke:s?e?.colors.dark_red:e?.colors.border}})}}return o})({theme:o,nodes:r,aggregatedServiceMap:i});N(a);const s=r.map(e=>e.id).sort().join("|");if(s!==k)return(async(e,t,i={})=>{const o={id:"root",layoutOptions:{...re,...i},children:e.map(e=>({id:e.id,width:80,height:80,...e.id===m?{layoutOptions:{"elk.layered.layering.layerConstraint":"FIRST","elk.alignment":"CENTER"}}:{}})),edges:t.map(e=>({id:e.id,sources:[e.source],targets:[e.target]}))},r=await oe.layout(o),a=new Map;return r.children?.forEach(e=>{a.set(e.id,{x:e.x??0,y:e.y??0})}),{nodes:e.map(e=>({...e,position:a.get(e.id)??e.position})),edges:t}})(r,a).then(({nodes:t})=>{e||(u(t),M(s),w())}),()=>{e=!0};u(e=>{const t=new Map(e.map(e=>[e.id,e]));return r.map(e=>{const i=t.get(e.id);return i?e.type===J.MapItem&&i.type===J.MapItem?{...e,position:i.position,data:{...e.data,selected:i.data.selected}}:{...e,position:i.position}:e})})},[o,t,c,k]);const A=l(()=>T||I?y.map(e=>{if(e.source===T||e.target===T||e.source===I||e.target===I)return{...e,type:ee.AnimatedTraffic};const t={opacity:.3};return{...e,style:{...e.style,...t},labelStyle:{...e.labelStyle,...t},labelBgStyle:{...e.labelBgStyle,...t}}}):y,[y,T,I]),L=l(()=>({nodes:p,edges:A,onNodesChange:v,onEdgesChange:S,setNodesSelected:_,fitViewTrigger:b,hoveredNodeId:T,setHoveredNodeId:C,selectedNodeId:I,toggleSelectedNode:V,resetSelectedNode:z}),[p,A,v,S,_,b,T,I,V,z]);return e(ne.Provider,{value:L,children:i})},ce=o.div`
6
+ border: 1px ${({theme:e,$isSelected:t,$isVirtual:i})=>t?`solid ${e.v2.colors.blue[300]}`:i?`dashed ${e.v2.colors.silver[300]}`:"solid transparent"};
7
+ border-radius: 8px;
8
+ cursor: pointer;
9
+ opacity: ${({$isVirtual:e})=>e?.8:1};
10
+ `,pe=o.div`
11
+ position: relative;
12
+ `,ue=o.div`
13
+ position: absolute;
14
+ top: 100%;
15
+ left: 50%;
16
+ transform: translateX(-50%);
4
17
  display: flex;
5
- gap: 12px;
6
18
  align-items: center;
7
- padding: 4px 0 4px 16px;
8
- `,L=I.button`
19
+ gap: 4px;
20
+ margin-top: 4px;
21
+ `,me=a(({id:o,data:a})=>{const{icons:s,status:n,isVirtual:d}=a,c=r(),{selectedNodeId:p,hoveredNodeId:u}=de(),{isUserSource:g,isNodeSelected:h,isHovered:f}=l(()=>({isUserSource:o===m,isNodeSelected:p===o,isHovered:u===o}),[o,p,u,o]),{isSelected:N,isHighlighted:S}=l(()=>({isSelected:h||g,isHighlighted:h||f||g}),[h,f,g]),b=n?R(n,c):null;return t(i,{children:[e(v,{type:"source",position:y.Right,style:{visibility:"hidden"}}),e(v,{type:"target",position:y.Left,style:{visibility:"hidden"}}),t(pe,{"data-id":o,children:[e(ce,{$isSelected:N,$isVirtual:d,children:e(z,{padding:12,icons:s,status:S?$.Info:n})}),t(ue,{children:[b&&e(b,{}),e(A,{size:L.XXS,nowrap:!0,children:o})]})]})]})});me.displayName=me.name;const ge=o.div`
22
+ display: flex;
23
+ flex-direction: column;
24
+ gap: 12px;
25
+ height: calc(100% - 32px);
26
+ width: ${358}px;
27
+ padding: 12px 16px;
28
+ border-radius: 16px;
29
+ background-color: ${({theme:e})=>e.v2.colors.silver[1e3]};
30
+ position: absolute;
31
+ top: 16px;
32
+ left: 8px;
33
+ z-index: ${({theme:e})=>e.v2.zIndex.drawer};
34
+ `,he=o.div`
35
+ flex: 1 1 auto;
36
+ min-height: 0;
37
+ `,fe=({})=>{const{nodes:i,setNodesSelected:o,resetSelectedNode:r}=de(),[a,d]=s(""),c=l(()=>i.filter(e=>e.type===J.MapItem).sort((e,t)=>e.id.localeCompare(t.id)),[i]),p=l(()=>c.filter(e=>e.data.selected),[c]),u=l(()=>c.filter(e=>e.id.toLowerCase().includes(a.toLowerCase())),[c,a]),m=l(()=>u.every(e=>e.data.selected),[u]),g=n(()=>{const e=!m;o(u.map(e=>e.id),e),e||r()},[u,m,o,r]);return c.length?t(ge,{children:[t(X,{$width:"100%",$gap:8,children:[e(A,{size:L.XS,children:"Services"}),e(j,{label:c.length})]}),e(D,{width:"100%",value:a,onChange:d}),t(X,{$width:"100%",$justifyContent:"space-between",children:[e(A,{size:L.XXXS,children:`Showing ${p.length} out of ${c.length}`}),e(A,{"data-id":"namespaces-select-all",onClick:g,disabled:!u.length,size:L.XS,children:m?E.UNSELECT_ALL:E.SELECT_ALL})]}),e(he,{children:e(P,{gap:4,elements:u.map(t=>e(ye,{node:t},t.id))})})]}):null},ve=o.div`
9
38
  display: flex;
10
39
  align-items: center;
11
- gap: 4px;
12
- background: none;
13
- border: none;
40
+ gap: 8px;
41
+ padding: 8px;
42
+ border-radius: 8px;
43
+ background-color: ${({theme:e})=>e.v2.colors.silver[900]};
14
44
  cursor: pointer;
15
- padding: 0;
16
- color: ${({theme:e})=>e.text.info};
17
- font-size: 12px;
18
- font-family: ${({theme:e})=>e.font_family.primary};
19
- &:hover {
20
- text-decoration: underline;
45
+ `,ye=({node:i})=>{const{setNodesSelected:o,selectedNodeId:r,resetSelectedNode:a}=de(),s=n(()=>{const e=!i.data.selected,t=r===i.id;o([i.id],e),!e&&t&&a()},[i,r,o,a]);return t(ve,{onClick:s,children:[e(q,{value:i.data.selected||!1,onChange:s}),e(z,{icons:i.data.icons}),e(A,{size:L.XXS,children:i.id})]},i.id)},Ne="0;0.5;1",Se=a(({id:o,sourceX:a,sourceY:s,targetX:n,targetY:d,sourcePosition:l,targetPosition:c,markerEnd:p})=>{const u=r(),[m]=N({sourceX:a,sourceY:s,targetX:n,targetY:d,sourcePosition:l,targetPosition:c}),g=`${o}__animated-traffic-motion`,h=u.v2.colors.blue[700],f=u.v2.colors.blue[900],v=u.v2.colors.blue[500],y="4s";return t(i,{children:[e(S,{id:o,path:m,markerEnd:p,style:{stroke:h,strokeWidth:1}}),e(b,{children:t("svg",{style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"visible",pointerEvents:"none"},children:[e("path",{id:g,d:m,fill:"none",stroke:"none"}),Array.from({length:5}).map((i,o)=>{const r=`-${(.8*o).toFixed(3)}s`;return t("circle",{r:0,fill:f,children:[e("animateMotion",{dur:y,begin:r,repeatCount:"indefinite",children:e("mpath",{href:`#${g}`})}),e("animate",{attributeName:"r",dur:y,begin:r,repeatCount:"indefinite",keyTimes:Ne,values:"0;3.5;3.5"}),e("animate",{attributeName:"fill",dur:y,begin:r,repeatCount:"indefinite",keyTimes:Ne,values:`${f};${v};${v}`})]},o)})]})})]})});Se.displayName=Se.name;const be=o.div`
46
+ position: relative;
47
+ height: 100%;
48
+ .react-flow__attribution {
49
+ visibility: hidden;
50
+ }
51
+ * {
52
+ transition: none;
53
+ }
54
+ `,xe=o.div`
55
+ .react-flow__controls {
56
+ display: flex;
57
+ align-items: center;
58
+ justify-content: center;
59
+ gap: 8px;
60
+ padding: 8px;
61
+ border-radius: 8px;
62
+ background-color: ${({theme:e})=>e.v2.colors.silver[1e3]};
63
+ }
64
+
65
+ .react-flow__controls-button {
66
+ padding: 8px;
67
+ border-radius: 6px;
68
+ border: none !important;
69
+ background-color: ${({theme:e})=>e.v2.colors.silver[750]};
70
+ &:hover {
71
+ background-color: ${({theme:e})=>e.v2.colors.silver[600]};
72
+ }
73
+
74
+ svg {
75
+ path {
76
+ fill: ${({theme:e})=>e.v2.colors.white[500]};
77
+ }
78
+ }
21
79
  }
22
- `,P=I.div`
23
- padding: 4px 0 8px;
24
- `,W=({conn:r,onToggle:i,isExpanded:n})=>{const a=r.details.length>0;return e(B,{children:t(S,{$justifyContent:"space-between",$alignItems:"center",children:[e(v,{size:14,weight:500,children:r.targetServiceName}),a&&t(L,{onClick:i,children:[e(n?T:$,{size:12}),n?"hide attributes":`${r.details.length} attribute${r.details.length>1?"s":""}`]})]})})},U=({conn:t})=>{const i=z();return e(r,{children:t.details.map((t,r)=>e(F,{children:e(v,{size:12,color:i.text.secondary,style:{flex:1},children:t.value})},`detail-${r}-${t.value}`))})},H=({connections:n,isVirtual:a,attributes:o})=>{const[s,c]=i(new Set),l=z();if(a){const i=Object.entries(o||{});return t(r,{children:[e(v,{size:12,color:l.text.info,children:"This service is not instrumented. It was detected from client-side spans of services that communicate with it."}),i.length>0&&t(r,{children:[e(P,{style:{paddingTop:16},children:e(v,{size:11,color:l.text.info,children:"Attributes"})}),i.map(([r,i])=>t(F,{children:[e(v,{size:12,color:l.text.secondary,children:r}),e(v,{size:12,children:i})]},r))]})]})}return n.length?t(r,{children:[e(P,{children:e(v,{size:11,color:l.text.info,children:"Connected services"})}),n.map(r=>t("div",{children:[e(W,{conn:r,isExpanded:s.has(r.targetGraphKey),onToggle:()=>{return e=r.targetGraphKey,void c(t=>{const r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r});var e}}),s.has(r.targetGraphKey)&&e(U,{conn:r}),e(x,{})]},r.targetGraphKey))]}):e(v,{size:12,color:l.text.info,children:"No outgoing connections"})},X=({conn:i})=>{const n=z();return i?e(r,{children:i.details.length>0?t(r,{children:[e(P,{children:e(v,{size:11,color:n.text.info,children:"Attribute breakdown"})}),i.details.map((t,r)=>e(F,{children:e(v,{size:12,style:{flex:1},children:t.value})},`detail-${r}-${t.value}`))]}):e(v,{size:12,color:n.text.info,style:{padding:"8px 0"},children:"No attribute breakdown"})}):e(v,{size:12,color:n.text.info,children:"No data for this connection"})},J=({drawerState:t,aggregatedData:r,onClose:i})=>{if(!t)return null;const n=new Map(r.map(e=>[e.graphKey,e]));let a="",o="",s=null;if("node"===t.type){const r=n.get(t.graphKey);a=r?.serviceName||t.graphKey,o=r?.isVirtual?"Virtual service (uninstrumented)":"Outgoing connections",s=e(H,{connections:r?.connections||[],isVirtual:r?.isVirtual,attributes:r?.attributes})}else{const r=n.get(t.sourceKey),i=r?.connections.find(e=>e.targetGraphKey===t.targetKey);a=`${r?.serviceName||t.sourceKey} → ${i?.targetServiceName||t.targetKey}`,o="Connection details",s=e(X,{conn:i})}return e(f,{isOpen:!0,width:"420px",position:"right",header:{title:a,subTitle:o,onClose:i},children:s})},Q=[],Y=I.div`
80
+ `,we={[J.MapItem]:me,[J.NoData]:Q},ke={[ee.AnimatedTraffic]:Se},Me={duration:300,padding:.1,includeHiddenNodes:!0,maxZoom:1},Te=({trigger:e})=>{const{fitView:t}=C(),i=u(!0);return d(()=>{i.current?i.current=!1:e>0&&requestAnimationFrame(()=>t(Me))},[e,t]),null},Ce=({onRefresh:i})=>{const{nodes:o,edges:r,fitViewTrigger:a,onNodesChange:s,onEdgesChange:n,setHoveredNodeId:d,toggleSelectedNode:c}=de(),p=l(()=>{const e=new Set(o.filter(e=>e.type===J.MapItem&&e.data.selected).map(e=>e.id)),t=new Set;for(const i of r)e.has(i.source)&&t.add(i.target),e.has(i.target)&&t.add(i.source);return o.filter(e=>e.type!==J.MapItem||e.data.selected||t.has(e.id))},[o,r]);return t(w,{zoomOnScroll:!0,nodes:p,nodeTypes:we,edges:r,edgeTypes:ke,onNodeClick:(e,t)=>c(t.id),onNodeMouseEnter:(e,t)=>d(t.id),onNodeMouseLeave:()=>d(null),onNodesChange:s,onEdgesChange:n,children:[e(k,{}),e(Te,{trigger:a}),e(xe,{children:e(M,{position:"top-right",orientation:"horizontal",showInteractive:!1,showZoom:!0,showFitView:!0,fitViewOptions:Me,children:e(T,{onClick:i,children:e(U,{})})})})]})},Ie=i=>e(x,{children:t(be,{children:[e(fe,{}),e(Ce,{...i})]})}),$e=o.div`
25
81
  width: 100%;
26
82
  flex: 1;
27
83
  align-self: stretch;
28
84
  min-height: 0;
29
85
  height: 100%;
30
86
  position: relative;
31
- `,Z={id:{namespace:"",name:"",kind:""},serviceName:"user",markedForInstrumentation:{markedForInstrumentation:!0}},ee=`${u.Source}-`,te=`-${d.MapItem}`,re=.15,ie=({serviceMap:r,pollIntervalMs:s=5e3})=>{const g=z(),{serviceMapApi:m,sourcesApi:h}=E(),y=h.useSources().items,{data:f,refetch:v}=m.useServiceMap({skip:!!r,pollInterval:s,fetchPolicy:"cache-and-network"}),x=r??(f?.serviceMap??Q),S=r?void 0:()=>{v()},[b,k,w]=c([]),[K,M,T]=l([]),[$,I]=i(0),[C,B]=i(null),F=n([]);F.current=b;const L=n(g);L.current=g;const P=n([]),W=n([]),U=a(()=>I(e=>e+1),[]),{activeNodeId:H,setActiveNodeType:X,setActiveNodeId:ie}=N();o(()=>{if(!H)return;const e=(t=H).startsWith(ee)&&t.endsWith(te)?t.slice(ee.length,-te.length):null;var t;e&&B({type:"node",graphKey:e})},[H]);const ne=a((e,t)=>{const{sourceGraphKey:r,targetGraphKey:i}=t.data||{};r&&i&&(X(null),ie(null),B({type:"edge",sourceKey:r,targetKey:i}))},[X,ie]),ae=a(()=>{B(null),X(null),ie(null)},[X,ie]),oe=a((e,t)=>{const r=t.id;M(e=>e.map(e=>e.source===r||e.target===r?{...e,animated:!0,style:{...e.style,strokeWidth:2.5},labelStyle:{...e.labelStyle,opacity:1},labelBgStyle:{...e.labelBgStyle,opacity:1}}:{...e,style:{...e.style,opacity:re},labelStyle:{...e.labelStyle,opacity:re},labelBgStyle:{...e.labelBgStyle,opacity:re}}))},[M]),se=a(()=>{M(W.current)},[M]);return o(()=>{let e=!1;const t=(e=>{const t=new Map,r=new Set,i=(e,r,i=!1)=>{let n=t.get(e);return n||(n={serviceName:r,isVirtual:i,attributes:{},connectionMap:new Map},t.set(e,n)),n},n=(e,t)=>{if(t)for(const{key:r,value:i}of t)r in e||(e[r]=i)};for(const t of e){const{graphKey:e}=_(t.nodeId),a=i(e,t.serviceName);a.isVirtual=!1;for(const e of t.services){const{graphKey:t,detail:o}=_(e?.nodeId??"");e.isVirtual&&(r.add(t),n(i(t,e.serviceName,!0).attributes,e.nodeAttributes));let s=a.connectionMap.get(t);if(s||(s={targetGraphKey:t,targetServiceName:e.serviceName,totalRequests:0,lastDateTime:e.dateTime,details:[]},a.connectionMap.set(t,s)),s.totalRequests+=e.requests,e.dateTime>s.lastDateTime&&(s.lastDateTime=e.dateTime),o){const t=s.details.find(e=>e.value===o);t?(t.requests+=e.requests,e.dateTime>t.dateTime&&(t.dateTime=e.dateTime)):s.details.push({value:o,requests:e.requests,dateTime:e.dateTime})}}}const a=[...t.entries()];for(const[,{connectionMap:e}]of a)for(const[n,a]of e)t.has(n)||i(n,a.targetServiceName,r.has(n));const o=[];for(const[e,{serviceName:r,isVirtual:i,attributes:n,connectionMap:a}]of t){const t=[...a.values()];t.sort((e,t)=>e.targetGraphKey.localeCompare(t.targetGraphKey)),o.push({graphKey:e,serviceName:r,isVirtual:i,connections:t,attributes:n})}return o.sort((e,t)=>e.graphKey.localeCompare(t.graphKey)),o})(x);P.current=t;const r=(({sources:e,aggregatedServiceMap:t})=>{const r=[],i={x:0,y:0};if(t.length&&e.length)for(const n of t){const t=V(n.graphKey),a=e.find(e=>n.serviceName===e.serviceName||n.serviceName===e.id.name);r.push({id:t,type:d.MapItem,position:i,data:j(n,a,A(a)),measured:{width:80,height:80}})}else r.push({id:`${u.Source}-${d.NoData}`,type:d.NoData,position:i,data:{subTitle:p.ARE_SERVICES_INSTRUMENTED_AND_PRODUCING_TRAFFIC}});return r})({aggregatedServiceMap:t,sources:[Z].concat(y)});if(1===r.length&&r[0].id===`${u.Source}-${d.NoData}`)return k(r),M([]),void(W.current=[]);const i=new Set(F.current.map(e=>e.id)),n=new Set(r.map(e=>e.id)),a=r.some(e=>!i.has(e.id)),o=F.current.some(e=>!n.has(e.id));if(!(a||o)){const e=new Map(F.current.map(e=>[e.id,e.position]));k(r.map(t=>({...t,position:e.get(t.id)??t.position})));const i=D({theme:L.current,nodes:r,aggregatedServiceMap:t});return W.current=i,void M(i)}return(async(e,t,r={})=>{const i={id:"root",layoutOptions:{...q,...r},children:e.map(e=>({id:e.id,width:80,height:80,...e.id===O?{layoutOptions:{"elk.layered.layering.layerConstraint":"FIRST","elk.alignment":"CENTER"}}:{}})),edges:t.map(e=>({id:e.id,sources:[e.source],targets:[e.target]}))},n=await R.layout(i),a=new Map;return n.children?.forEach(e=>{a.set(e.id,{x:e.x??0,y:e.y??0})}),{nodes:e.map(e=>({...e,position:a.get(e.id)??e.position})),edges:t}})(r,D({theme:L.current,nodes:r,aggregatedServiceMap:t})).then(({nodes:t})=>{if(e)return;k(t);const r=D({theme:L.current,nodes:t,aggregatedServiceMap:P.current});W.current=r,M(r),U()}),()=>{e=!0}},[x,y]),o(()=>{if(!F.current.length)return;const e=D({theme:g,nodes:F.current,aggregatedServiceMap:P.current});W.current=e,M(e)},[g]),t(Y,{children:[e(G,{nodes:b,edges:K,onNodesChange:w,onEdgesChange:T,onEdgeClick:ne,onNodeMouseEnter:oe,onNodeMouseLeave:se,onRefresh:S,fitViewTrigger:$,zoomOnScroll:!0}),e(J,{drawerState:C,aggregatedData:P.current,onClose:ae})]})},ne=I.div`
87
+ `,Ee=()=>{const{serviceMapApi:t}=W(),{data:i,refetch:o}=t.useServiceMap({pollInterval:5e3,fetchPolicy:"cache-and-network"});return e(le,{serviceMap:i?.serviceMap??[],children:e($e,{children:e(Ie,{onRefresh:o})})})},Ke=o.div`
32
88
  position: fixed;
33
89
  bottom: 12px;
34
90
  left: 12px;
@@ -37,4 +93,4 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{useState
37
93
  flex-direction: column-reverse;
38
94
  gap: 6px;
39
95
  max-width: 600px;
40
- `,ae=()=>{const{notifications:t,markAsDismissed:r,markAsSeen:i}=b(),{onClickNotification:n}=k(),a=t.filter(({dismissed:e})=>!e);return e(ne,{children:a.map(({id:t,type:o,title:s,message:c,crdType:l,target:d},p)=>{const u=c||s;if(!u)return null;const g=a.length-p;return e(w,{status:o,message:u,action:l&&d?{label:"go to details",onClick:()=>n({id:t,crdType:l,target:d},{dismissToast:!0})}:void 0,onClose:({asSeen:e})=>(({id:e,asSeen:t})=>{r(e),t&&i(e)})({id:t,asSeen:e}),zIndex:g},`toast-${t}`)})})};export{ie as ServiceMap,ae as ToastList};
96
+ `,Ve=()=>{const{notifications:t,markAsDismissed:i,markAsSeen:o}=G(),{onClickNotification:r}=F(),a=t.filter(({dismissed:e})=>!e);return e(Ke,{children:a.map(({id:t,type:s,title:n,message:d,crdType:l,target:c},p)=>{const u=d||n;if(!u)return null;const m=a.length-p;return e(H,{status:s,message:u,action:l&&c?{label:"go to details",onClick:()=>r({id:t,crdType:l,target:c},{dismissToast:!0})}:void 0,onClose:({asSeen:e})=>(({id:e,asSeen:t})=>{i(e),t&&o(e)})({id:t,asSeen:e}),zIndex:m},`toast-${t}`)})})};export{Ee as ServiceMap,Ve as ToastList};
@@ -14,6 +14,7 @@
14
14
  import type { OdigosApiOperations, OperationContext } from './types';
15
15
  export interface Capabilities {
16
16
  canBulkPersistSources: boolean;
17
+ canInstrumentNamespaces: boolean;
17
18
  canFetchSnapshots: boolean;
18
19
  canRecoverFromRollback: boolean;
19
20
  canRestartWorkloads: boolean;
@@ -17,6 +17,9 @@ export interface UseSnapshotsResult {
17
17
  loading: boolean;
18
18
  /** True when the host adapter doesn't expose `GET_ALL_CLUSTER_SNAPSHOTS` at all. */
19
19
  unsupported: boolean;
20
+ refetch: () => Promise<{
21
+ data?: AllClusterSnapshots;
22
+ } | undefined>;
20
23
  }
21
24
  export interface SnapshotsApi {
22
25
  /**
@@ -17,7 +17,7 @@ export { useApiQuery, useApiLazyQuery, useApiMutation } from './use-api-query';
17
17
  export { useApiForConnections, type ApiForConnections } from './use-api-for-connections';
18
18
  export type { UseApiQueryOptions, UseApiQueryResult, UseApiLazyQueryResult, UseApiMutationOptions, UseApiMutationResult, UseApiMutationTuple } from './use-api-query';
19
19
  export { pickByPlatform, versionedDocument, vmDialectMap, type VersionedDocumentMap } from './platform-helpers';
20
- export type { ApolloConfig, CreateActionResult, CreateActionVars, CreateCostReductionRuleResult, CreateDataStreamResult, CreateDataStreamVars, CreateDestinationResult, CreateDestinationVars, CreateHighlyRelevantOperationRuleResult, CreateInstrumentationRuleResult, CreateInstrumentationRuleVars, CreateNoisyOperationRuleResult, DeleteActionResult, DeleteActionVars, DeleteCostReductionRuleResult, DeleteDataStreamResult, DeleteDataStreamVars, DeleteDestinationResult, DeleteDestinationVars, DeleteHighlyRelevantOperationRuleResult, DeleteInstrumentationRuleResult, DeleteInstrumentationRuleVars, DeleteNoisyOperationRuleResult, DescribeOdigosData, DescribeSourceData, DestinationWireInput, DiagnoseResult, DiagnoseVars, GetActionsData, GetAllClusterSnapshotsData, GetClusterSnapshotData, GetClusterSnapshotVars, GetCollectorPodInfoData, GetCollectorPodInfoVars, GetConfigYamlsData, GetDataStreamsData, GetDestinationsData, GetEffectiveConfigVars, GetGatewayInfoData, GetGatewayPodsData, GetInstrumentationRulesData, GetK8sManifestData, GetK8sManifestVars, GetMetricsData, GetNamespacesWithWorkloadsData, GetNodeCollectorInfoData, GetNodeCollectorPodsData, GetPeerSourcesVars, GetProfilingSlotsData, GetSamplingRulesData, GetServiceMapData, GetSourceLibrariesData, GetSourceLibrariesVars, GetSourceProfilingData, GetTokensData, GetWorkloadsByIdsData, GetWorkloadsByIdsVars, GetWorkloadsData, GetWorkloadsVars, MultiFetchGroup, MultiFetchResponse, MultiFetchResult, OdigosApiOperations, OdigosApiProviderProps, Operation, OperationContext, PersistNamespacesResult, PersistNamespacesVars, PersistSourcesResult, PersistSourcesVars, RecoverFromRollbackVars, ResetLocalUiConfigResult, RestartPodVars, RestartWorkloadsVars, SamplingK8sHealthConfigInput, SamplingK8sHealthConfigVars, SamplingRuleCreateVars, SamplingRuleDeleteVars, SamplingRuleUpdateVars, TestDestinationConnectionVars, UpdateActionResult, UpdateActionVars, UpdateCostReductionRuleResult, UpdateDataStreamResult, UpdateDataStreamVars, UpdateDestinationData, UpdateDestinationVars, UpdateHighlyRelevantOperationRuleResult, UpdateInstrumentationRuleResult, UpdateInstrumentationRuleVars, UpdateLocalUiConfigResult, UpdateLocalUiConfigVars, UpdateLocalUiSamplingConfigResult, UpdateLocalUiSamplingConfigVars, UpdateNoisyOperationRuleResult, UpdateRemoteConfigResult, UpdateRemoteConfigVars, UpdateSourceVars, UpdateTokenResult, UpdateTokenVars, } from './types';
20
+ export type { ApolloConfig, CreateActionResult, CreateActionVars, CreateCostReductionRuleResult, CreateDataStreamResult, CreateDataStreamVars, CreateDestinationResult, CreateDestinationVars, CreateHighlyRelevantOperationRuleResult, CreateInstrumentationRuleResult, CreateInstrumentationRuleVars, CreateNoisyOperationRuleResult, DeleteActionResult, DeleteActionVars, DeleteCostReductionRuleResult, DeleteDataStreamResult, DeleteDataStreamVars, DeleteDestinationResult, DeleteDestinationVars, DeleteHighlyRelevantOperationRuleResult, DeleteInstrumentationRuleResult, DeleteInstrumentationRuleVars, DeleteNoisyOperationRuleResult, DescribeOdigosData, DescribeSourceData, DestinationWireInput, DiagnoseResult, DiagnoseVars, GetActionsData, GetAllClusterSnapshotsData, GetClusterSnapshotData, GetClusterSnapshotVars, GetCollectorPodInfoData, GetCollectorPodInfoVars, GetConfigYamlsData, GetDataStreamsData, GetDestinationsData, GetEffectiveConfigVars, GetGatewayInfoData, GetGatewayPodsData, GetInstrumentationRulesData, GetK8sManifestData, GetK8sManifestVars, GetMetricsData, GetNamespacesWithWorkloadsData, GetNodeCollectorInfoData, GetNodeCollectorPodsData, GetPeerSourcesVars, GetProfilingSlotsData, GetSamplingRulesData, GetServiceMapData, GetSourceLibrariesData, GetSourceLibrariesVars, GetSourceProfilingData, GetTokensData, GetWorkloadsByIdsData, GetWorkloadsByIdsVars, GetWorkloadsData, GetWorkloadsVars, MultiFetchGroup, MultiFetchResponse, MultiFetchResult, OdigosApiOperations, OdigosApiProviderProps, Operation, OperationContext, PersistNamespacesResult, PersistNamespacesVars, PersistSourcesResult, PersistSourcesVars, RecoverFromRollbackVars, ResetLocalUiConfigResult, RestartPodVars, RestartWorkloadsVars, SamplingConfigInputWire, SamplingK8sHealthConfigInput, SamplingK8sHealthConfigVars, SamplingRuleCreateVars, SamplingRuleDeleteVars, SamplingRuleUpdateVars, TestDestinationConnectionVars, UpdateActionResult, UpdateActionVars, UpdateCostReductionRuleResult, UpdateDataStreamResult, UpdateDataStreamVars, UpdateDestinationData, UpdateDestinationVars, UpdateHighlyRelevantOperationRuleResult, UpdateInstrumentationRuleResult, UpdateInstrumentationRuleVars, UpdateLocalUiConfigResult, UpdateLocalUiConfigVars, UpdateLocalUiSamplingConfigResult, UpdateLocalUiSamplingConfigVars, UpdateNoisyOperationRuleResult, UpdateRemoteConfigResult, UpdateRemoteConfigVars, UpdateSourceVars, UpdateTokenResult, UpdateTokenVars, } from './types';
21
21
  export type { Capabilities } from './capabilities';
22
22
  export type { ConfigApi } from './hooks/use-config-api';
23
23
  export type { TokensApi } from './hooks/use-tokens-api';
@@ -549,13 +549,22 @@ export interface SamplingRuleDeleteVars {
549
549
  ruleId: string;
550
550
  }
551
551
  /**
552
- * The wire `SamplingConfigInput` shapethe inner config payload
553
- * that `UpdateLocalUiSamplingConfigVars.config` carries.
552
+ * The inner k8s-health-probes config payload nested under
553
+ * `SamplingConfigInput.k8sHealthProbesSampling` on the wire.
554
554
  */
555
555
  export interface SamplingK8sHealthConfigInput {
556
556
  enabled: boolean;
557
557
  keepPercentage: number;
558
558
  }
559
+ /**
560
+ * The wire `SamplingConfigInput` shape that
561
+ * `UpdateLocalUiSamplingConfigVars.config` carries. As of the schema
562
+ * restructure, the health-probe fields are nested under
563
+ * `k8sHealthProbesSampling` (previously they were flat on `config`).
564
+ */
565
+ export interface SamplingConfigInputWire {
566
+ k8sHealthProbesSampling?: SamplingK8sHealthConfigInput;
567
+ }
559
568
  /**
560
569
  * @deprecated alias retained for any host code that imported the old
561
570
  * inner-config name. Prefer `SamplingK8sHealthConfigInput` for the
@@ -571,10 +580,11 @@ export interface UpdateLocalUiConfigVars {
571
580
  }
572
581
  /**
573
582
  * Variables for `UPDATE_LOCAL_UI_SAMPLING_CONFIG` — wire mutation
574
- * requires the input wrapped under `$config: SamplingConfigInput`.
583
+ * requires the input wrapped under `$config: SamplingConfigInput`,
584
+ * with the health-probe fields nested under `k8sHealthProbesSampling`.
575
585
  */
576
586
  export interface UpdateLocalUiSamplingConfigVars {
577
- config: SamplingK8sHealthConfigInput;
587
+ config: SamplingConfigInputWire;
578
588
  }
579
589
  export interface GetClusterSnapshotVars {
580
590
  clusterId: string;
@@ -1 +1 @@
1
- import{e as o,r,f as t}from"../chunks/use-odigos-api-W15RTo5l.js";export{O as OdigosApiProvider,p as prepareNamespacePayloads,a as prepareSourcePayloads,u as useApiLazyQuery,b as useApiMutation,c as useApiQuery,d as useOdigosApi}from"../chunks/use-odigos-api-W15RTo5l.js";export{O as OdigosApiConnectionsScope}from"../chunks/connections-scope-DDNmfpzA.js";import{useApolloClient as e}from"@apollo/client";import{P as s,t as i}from"../chunks/ui-components-D_eeOuIL.js";import"react";import"react/jsx-runtime";import"@apollo/client/link/error";import"@apollo/client/link/context";import"@apollo/client/utilities";import"styled-components";import"../icons.js";import"zustand";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"prism-react-renderer";import"../chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";const n=()=>{const s=e(),{operations:i,context:n}=o();return{multiFetch:async(o,r,e)=>{const a=i[o];return a?t(s,a,r,e,n):{results:[],allSucceeded:!1,anySucceeded:!1,successCount:0,failureCount:r.length,error:`Operation ${String(o)} not configured`}},bulkPersistSources:async(o,t)=>{const e=[];for(const a of o){const o={...n,proxyID:a},{error:c}=await r(s,i.PERSIST_SOURCES,t,o);c&&e.push(`${a}: ${c}`)}return e.length?{error:e.join(", ")}:void 0},applyConfigurations:async(o,t)=>{if(!i.UPDATE_REMOTE_CONFIG)return{error:"UPDATE_REMOTE_CONFIG not configured"};const{error:e}=await r(s,i.UPDATE_REMOTE_CONFIG,{formData:t,connectionIds:o},n);return e?{error:e}:void 0}}},m=(o,r)=>o.platformType===s.K8s?r.K8s:o.platformType===s.Vm?r.Vm:void 0,l=o=>r=>{const t=o[r.platformType];if(!t)return;const e=Object.keys(t);if(0===e.length)return;const s=i(r.schemaVersion??r.version),n=[...e].sort((o,r)=>i(r)-i(o)).find(o=>s>=i(o));return n?t[n]:void 0},f=(o,r)=>{const t={};for(const e of Object.keys(o))t[e]=r(o[e]);return t};export{m as pickByPlatform,n as useApiForConnections,l as versionedDocument,f as vmDialectMap};
1
+ import{e as o,r,f as t}from"../chunks/use-odigos-api-BMcghWbA.js";export{O as OdigosApiProvider,p as prepareNamespacePayloads,a as prepareSourcePayloads,u as useApiLazyQuery,b as useApiMutation,c as useApiQuery,d as useOdigosApi}from"../chunks/use-odigos-api-BMcghWbA.js";export{O as OdigosApiConnectionsScope}from"../chunks/connections-scope-D_2Q866B.js";import{useApolloClient as e}from"@apollo/client";import{P as s,t as i}from"../chunks/ui-components-B1TCLO_N.js";import"react";import"react/jsx-runtime";import"@apollo/client/link/error";import"@apollo/client/link/context";import"@apollo/client/utilities";import"styled-components";import"../icons.js";import"zustand";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"prism-react-renderer";import"../chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";const n=()=>{const s=e(),{operations:i,context:n}=o();return{multiFetch:async(o,r,e)=>{const a=i[o];return a?t(s,a,r,e,n):{results:[],allSucceeded:!1,anySucceeded:!1,successCount:0,failureCount:r.length,error:`Operation ${String(o)} not configured`}},bulkPersistSources:async(o,t)=>{const e=[];for(const a of o){const o={...n,proxyID:a},{error:c}=await r(s,i.PERSIST_SOURCES,t,o);c&&e.push(`${a}: ${c}`)}return e.length?{error:e.join(", ")}:void 0},applyConfigurations:async(o,t)=>{if(!i.UPDATE_REMOTE_CONFIG)return{error:"UPDATE_REMOTE_CONFIG not configured"};const{error:e}=await r(s,i.UPDATE_REMOTE_CONFIG,{formData:t,connectionIds:o},n);return e?{error:e}:void 0}}},m=(o,r)=>o.platformType===s.K8s?r.K8s:o.platformType===s.Vm?r.Vm:void 0,l=o=>r=>{const t=o[r.platformType];if(!t)return;const e=Object.keys(t);if(0===e.length)return;const s=i(r.schemaVersion??r.version),n=[...e].sort((o,r)=>i(r)-i(o)).find(o=>s>=i(o));return n?t[n]:void 0},f=(o,r)=>{const t={};for(const e of Object.keys(o))t[e]=r(o[e]);return t};export{m as pickByPlatform,n as useApiForConnections,l as versionedDocument,f as vmDialectMap};
package/lib/contexts.js CHANGED
@@ -1 +1 @@
1
- export{A as ActionFormContextProvider,D as DataStreamFormContextProvider,a as DestinationFormContextProvider,R as RuleFormContextProvider,S as SamplingRuleFormType,b as SamplingRulesFormProvider,c as SourceEditFormContextProvider,d as SourceInstrumentFormContextProvider,u as useActionFormContext,e as useDataStreamFormContext,f as useDestinationFormContext,g as useRuleFormContext,h as useSamplingRulesFormContext,i as useSourceEditFormContext,j as useSourceInstrumentFormContext}from"./chunks/source-instrument-form-context-BJGS7jKX.js";export{O as OdigosProvider,c as checkVersionSupport,u as useOdigos}from"./chunks/helpers-Cy9W3KCg.js";import{jsx as o}from"react/jsx-runtime";import{useMemo as r,useContext as t,createContext as s}from"react";export{O as OdigosApiConnectionsScope}from"./chunks/connections-scope-DDNmfpzA.js";export{O as OdigosApiProvider,p as prepareNamespacePayloads,a as prepareSourcePayloads,u as useApiLazyQuery,b as useApiMutation,c as useApiQuery,d as useOdigosApi}from"./chunks/use-odigos-api-W15RTo5l.js";export{pickByPlatform,useApiForConnections,versionedDocument,vmDialectMap}from"./contexts/odigos-api.js";import"./chunks/ui-components-D_eeOuIL.js";import"styled-components";import"./icons.js";import"zustand";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";import"@apollo/client";import"@apollo/client/link/error";import"@apollo/client/link/context";import"@apollo/client/utilities";const n=s({formType:void 0}),m=({children:e,formType:t})=>{const s=r(()=>({formType:t}),[t]);return o(n.Provider,{value:s,children:e})},l=()=>t(n);export{m as StorybookProvider,l as useStorybook};
1
+ export{A as ActionFormContextProvider,D as DataStreamFormContextProvider,a as DestinationFormContextProvider,R as RuleFormContextProvider,S as SamplingRuleFormType,b as SamplingRulesFormProvider,c as SourceEditFormContextProvider,d as SourceInstrumentFormContextProvider,u as useActionFormContext,e as useDataStreamFormContext,f as useDestinationFormContext,g as useRuleFormContext,h as useSamplingRulesFormContext,i as useSourceEditFormContext,j as useSourceInstrumentFormContext}from"./chunks/source-instrument-form-context-DaQkZ03_.js";export{O as OdigosProvider,c as checkVersionSupport,u as useOdigos}from"./chunks/helpers-CUmUiA_l.js";import{jsx as o}from"react/jsx-runtime";import{useMemo as r,useContext as t,createContext as s}from"react";export{O as OdigosApiConnectionsScope}from"./chunks/connections-scope-D_2Q866B.js";export{O as OdigosApiProvider,p as prepareNamespacePayloads,a as prepareSourcePayloads,u as useApiLazyQuery,b as useApiMutation,c as useApiQuery,d as useOdigosApi}from"./chunks/use-odigos-api-BMcghWbA.js";export{pickByPlatform,useApiForConnections,versionedDocument,vmDialectMap}from"./contexts/odigos-api.js";import"./chunks/ui-components-B1TCLO_N.js";import"styled-components";import"./icons.js";import"zustand";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";import"@apollo/client";import"@apollo/client/link/error";import"@apollo/client/link/context";import"@apollo/client/utilities";const n=s({formType:void 0}),m=({children:e,formType:t})=>{const s=r(()=>({formType:t}),[t]);return o(n.Provider,{value:s,children:e})},l=()=>t(n);export{m as StorybookProvider,l as useStorybook};
@@ -0,0 +1,3 @@
1
+ import { TypographySize } from '@/components/_v2/typography';
2
+ /** Picks the {@link TypographySize} whose theme pixel value is closest to `target`. */
3
+ export declare const getNearestTypographySize: (target: number, sizes: Record<TypographySize, number>) => TypographySize;
@@ -27,6 +27,7 @@ export * from './get-instrumentation-rule-icon';
27
27
  export * from './get-main-container-language';
28
28
  export * from './get-metric-for-entity';
29
29
  export * from './get-monitor-icon';
30
+ export * from './get-nearest-typography-size';
30
31
  export * from './get-platform-icon';
31
32
  export * from './get-platform-label';
32
33
  export * from './get-programming-language-icon';
package/lib/functions.js CHANGED
@@ -1 +1 @@
1
- export{a3 as adaptInstrumentationRuleFromWire,a2 as adaptInstrumentationRuleInputForWire,b9 as buildBadgeForDesiredStatus,fe as capitalizeFirstLetter,ff as cleanObjectEmptyStringsValues,as as compareCondition,fg as decimalsOnly,s as deepClone,dm as entityIdKey,ds as filterActions,dr as filterDestinations,b2 as filterDestinationsByStream,dq as filterSources,de as filterSourcesByStream,fh as flattenObjectKeys,bp as formatBytes,fi as formatDuration,bY as generateId,b0 as getActionIcon,k as getConditionsBooleans,bB as getContainersIcons,fj as getContainersInstrumentedCount,fk as getDeepValue,aS as getDestinationIcon,fl as getDetectedLanguageIcons,be as getEffectiveLanguage,bw as getEffectiveRuntimeVersion,dn as getEntityIcon,a1 as getEntityId,dk as getEntityIdKey,dl as getEntityLabel,fm as getHealthBadgeLabel,a0 as getIdFromSseTarget,b6 as getInstrumentationRuleIcon,fn as getMainContainerLanguage,fo as getMetricForEntity,fp as getMonitorIcon,fq as getPlatformIcon,fr as getPlatformLabel,az as getProgrammingLanguageIcon,fs as getRecursiveValues,j as getSourceLanguageIcons,X as getSseTargetFromId,ft as getStatusColor,dw as getStatusFromPodStatus,g as getStatusIcon,br as getStatusTypeFromOdigosHealth,fu as getValueForRange,i as getVirtualServiceIcon,bm as getWorkloadId,b3 as getYamlFieldsForDestination,fv as hasUnhealthyInstances,fw as instrumentationRuleSourceScopesFromWire,fx as instrumentationRuleSourceScopesToWire,x as isEmpty,B as isLegalK8sLabel,bU as isOverTime,fy as isStringABoolean,fz as isTimeElapsed,bv as isValidVersion,fA as mapConditions,bc as mapDesiredStatusToConditionStatus,b1 as mapDestinationFieldsForDisplay,K as mapExportedSignals,G as mapSupportedSignals,fB as numbersOnly,fC as parseBooleanFromString,fD as parseJsonStringToPrettyString,at as prepareDestinationFormData,fE as removeEmptyValuesFromObject,J as safeJsonParse,fF as safeJsonStringify,fG as setDeepValue,fH as sleep,b4 as splitCamelString,fI as stringifyNonStringValues,t as trimVersion}from"./chunks/ui-components-D_eeOuIL.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"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
1
+ export{a0 as adaptInstrumentationRuleFromWire,$ as adaptInstrumentationRuleInputForWire,b7 as buildBadgeForDesiredStatus,f8 as capitalizeFirstLetter,f9 as cleanObjectEmptyStringsValues,ar as compareCondition,fa as decimalsOnly,e as deepClone,dh as entityIdKey,dm as filterActions,dl as filterDestinations,b0 as filterDestinationsByStream,dk as filterSources,d9 as filterSourcesByStream,fb as flattenObjectKeys,bk as formatBytes,fc as formatDuration,bT as generateId,a_ as getActionIcon,v as getConditionsBooleans,bw as getContainersIcons,fd as getContainersInstrumentedCount,fe as getDeepValue,aQ as getDestinationIcon,ff as getDetectedLanguageIcons,bc as getEffectiveLanguage,br as getEffectiveRuntimeVersion,di as getEntityIcon,_ as getEntityId,df as getEntityIdKey,dg as getEntityLabel,fg as getHealthBadgeLabel,Z as getIdFromSseTarget,b4 as getInstrumentationRuleIcon,fh as getMainContainerLanguage,fi as getMetricForEntity,fj as getMonitorIcon,fk as getNearestTypographySize,fl as getPlatformIcon,fm as getPlatformLabel,ax as getProgrammingLanguageIcon,fn as getRecursiveValues,r as getSourceLanguageIcons,U as getSseTargetFromId,fo as getStatusColor,ds as getStatusFromPodStatus,x as getStatusIcon,bm as getStatusTypeFromOdigosHealth,fp as getValueForRange,q as getVirtualServiceIcon,bi as getWorkloadId,b1 as getYamlFieldsForDestination,fq as hasUnhealthyInstances,fr as instrumentationRuleSourceScopesFromWire,fs as instrumentationRuleSourceScopesToWire,i as isEmpty,j as isLegalK8sLabel,bP as isOverTime,ft as isStringABoolean,fu as isTimeElapsed,bq as isValidVersion,fv as mapConditions,ba as mapDesiredStatusToConditionStatus,a$ as mapDestinationFieldsForDisplay,k as mapExportedSignals,m as mapSupportedSignals,fw as numbersOnly,fx as parseBooleanFromString,fy as parseJsonStringToPrettyString,as as prepareDestinationFormData,fz as removeEmptyValuesFromObject,s as safeJsonParse,fA as safeJsonStringify,fB as setDeepValue,fC as sleep,b2 as splitCamelString,fD as stringifyNonStringValues,t as trimVersion}from"./chunks/ui-components-B1TCLO_N.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"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
package/lib/hooks.js CHANGED
@@ -1 +1 @@
1
- export{fT as IGNORE_OUTSIDE_CLICK_ATTR,fU as useActionFormData,fV as useBodyScroll,u as useClickNode,p as useClickNotification,dp as useContainerSize,bq as useCopy,fW as useDataStreamFormData,fX as useDestinationFormData,r as useGenericForm,fY as useInstrumentationRuleFormData,bT as useKeyDown,bs as useOnClickOutside,fZ as useOverflow,d as usePopup,b8 as useScrollIntoViewWhen,dS as useScrollTo,dh as useSessionStorage,f_ as useSourceFormData,b7 as useTimeAgo}from"./chunks/ui-components-D_eeOuIL.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"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
1
+ export{fO as IGNORE_OUTSIDE_CLICK_ATTR,fP as useActionFormData,fQ as useBodyScroll,dn as useClickNode,Q as useClickNotification,dj as useContainerSize,bl as useCopy,fR as useDataStreamFormData,fS as useDestinationFormData,d as useGenericForm,fT as useInstrumentationRuleFormData,bO as useKeyDown,bn as useOnClickOutside,fU as useOverflow,u as usePopup,b6 as useScrollIntoViewWhen,dO as useScrollTo,dc as useSessionStorage,fV as useSourceFormData,b5 as useTimeAgo}from"./chunks/ui-components-B1TCLO_N.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"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
@@ -1 +1 @@
1
- export * from './react-flow';
1
+ export * from './_v2';
@@ -1 +1 @@
1
- export{bi as ActionType,dv as Actions,du as RichTitle}from"../chunks/ui-components-D_eeOuIL.js";export{C as CancelModal,j as DURATION_OPTIONS,g as DeleteModal,e as DurationErrorsSection,D as DynamicField,I as InstrumentationPreviewSection,N as NOISY_PERCENTAGE_OPTIONS,h as OdigosLogoTextByTier,O as OperationSection,b as PERCENTAGE_OPTIONS,f as PercentageSection,P as PresetWithCustomInput,R as RuleInfoSection,d as RuleTypeSection,c as SamplingPreviewSection,S as SignalsCheckboxList,a as SourceScopeSection,U as UpgradeModal,i as WIDE_DRAWER_WIDTH,W as WideDrawer,Y as YamlSectionCard}from"../chunks/index-D2nQHheF.js";export{C as ColoredSpan,D as ColoredSpanVariant}from"../chunks/helpers-Cy9W3KCg.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"prism-react-renderer";import"../chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
1
+ export{bg as ActionType,dr as Actions,dq as RichTitle}from"../chunks/ui-components-B1TCLO_N.js";export{C as CancelModal,j as DURATION_OPTIONS,g as DeleteModal,e as DurationErrorsSection,D as DynamicField,I as InstrumentationPreviewSection,N as NOISY_PERCENTAGE_OPTIONS,h as OdigosLogoTextByTier,O as OperationSection,b as PERCENTAGE_OPTIONS,f as PercentageSection,P as PresetWithCustomInput,R as RuleInfoSection,d as RuleTypeSection,c as SamplingPreviewSection,S as SignalsCheckboxList,a as SourceScopeSection,U as UpgradeModal,i as WIDE_DRAWER_WIDTH,W as WideDrawer,Y as YamlSectionCard}from"../chunks/index-hiRPXsEi.js";export{C as ColoredSpan,D as ColoredSpanVariant}from"../chunks/helpers-CUmUiA_l.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"prism-react-renderer";import"../chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
package/lib/snippets.js CHANGED
@@ -1 +1 @@
1
- export{F as Flow,M as MapItemNode,N as NoDataNode}from"./chunks/flow-Bu1VbeQt.js";import"react/jsx-runtime";import"react";import"@xyflow/react/dist/style.css";import"styled-components";import"./chunks/ui-components-D_eeOuIL.js";import"./icons.js";import"zustand";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";import"@xyflow/react";
1
+ export{bg as ActionType,dr as Actions,dq as RichTitle}from"./chunks/ui-components-B1TCLO_N.js";export{C as CancelModal,j as DURATION_OPTIONS,g as DeleteModal,e as DurationErrorsSection,D as DynamicField,I as InstrumentationPreviewSection,N as NOISY_PERCENTAGE_OPTIONS,h as OdigosLogoTextByTier,O as OperationSection,b as PERCENTAGE_OPTIONS,f as PercentageSection,P as PresetWithCustomInput,R as RuleInfoSection,d as RuleTypeSection,c as SamplingPreviewSection,S as SignalsCheckboxList,a as SourceScopeSection,U as UpgradeModal,i as WIDE_DRAWER_WIDTH,W as WideDrawer,Y as YamlSectionCard}from"./chunks/index-hiRPXsEi.js";export{C as ColoredSpan,D as ColoredSpanVariant}from"./chunks/helpers-CUmUiA_l.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"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
@@ -1,4 +1,3 @@
1
- export * from './useActiveNodeStore';
2
1
  export * from './useDarkMode';
3
2
  export * from './useDataStreamStore';
4
3
  export * from './useDrawerStore';
@@ -1,6 +1,7 @@
1
+ import { type NodeTypes } from '@/containers/service-map/helpers/types';
1
2
  import { EntityTypes, type SamplingRuleCategory, type WorkloadId } from '@/types';
2
3
  export interface DrawerStoreState {
3
- drawerType: EntityTypes | null;
4
+ drawerType: NodeTypes | EntityTypes | null;
4
5
  drawerEntityId: string | WorkloadId | null;
5
6
  pendingViewSamplingRule: {
6
7
  ruleId: string;
package/lib/store.js CHANGED
@@ -1 +1 @@
1
- export{$ as ProgressKeys,a as useActiveNodeStore,fS as useDarkMode,z as useDataStreamStore,bl as useDrawerStore,dd as useFilterStore,bZ as useModalStore,o as useNotificationStore,Z as useProgressStore,dj as useSelectedStore,_ as useSetupStore}from"./chunks/ui-components-D_eeOuIL.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"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
1
+ export{Y as ProgressKeys,fN as useDarkMode,h as useDataStreamStore,bh as useDrawerStore,d8 as useFilterStore,bU as useModalStore,O as useNotificationStore,W as useProgressStore,de as useSelectedStore,X as useSetupStore}from"./chunks/ui-components-B1TCLO_N.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"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
package/lib/theme.js CHANGED
@@ -1 +1 @@
1
- export{f$ as Provider,g0 as animations,g1 as opacity,g2 as palettes}from"./chunks/ui-components-D_eeOuIL.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"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
1
+ export{fW as Provider,fX as animations,fY as opacity,fZ as palettes}from"./chunks/ui-components-B1TCLO_N.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"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
@@ -1,7 +1,6 @@
1
1
  export * from './actions';
2
2
  export * from './config';
3
3
  export * from './common';
4
- export * from './data-flow';
5
4
  export * from './data-streams';
6
5
  export * from './describe';
7
6
  export * from './destinations';
package/lib/types.js CHANGED
@@ -1 +1 @@
1
- export{v as ActionKeyTypes,w as ActionType,eO as AddNodeTypes,eP as AgentInjectedReason,eQ as BooleanOperation,au as CodeAttributesKeyTypes,eR as ConditionType,Y as Crud,Q as CustomInstrumentationsKeyTypes,ba as DesiredStateProgress,eS as DestinationTypes,eT as EdgeTypes,E as EntityTypes,aj as ExtractionDataFormat,L as FieldTypes,R as GolangCustomProbe,O as HeadersCollectionKeyTypes,dU as InputTypes,eU as InstallationMethod,eV as InstallationStatus,V as InstrumentationRuleType,eW as IntrumentationStatus,U as JavaCustomProbe,eX as JsonOperation,a8 as K8sAttributesFrom,W as K8sResourceKind,eY as K8sWorkloadContainerAgentConfigTracesHeadSamplingSpanMetricsMode,eZ as ListDirection,b as NodeTypes,e_ as NumberOperation,e$ as OtelDistroName,f0 as OtherEntityTypes,bf as OtherStatus,aT as OtherStatusType,aw as PayloadCollectionKeyTypes,P as PlatformType,f1 as PodContainerLifecycleStatus,f2 as PodContainerStatus,f3 as PodPhase,f4 as Profile,by as ProgrammingLanguages,f5 as SIGNAL_KEY_TO_TYPE,f6 as SIGNAL_TYPE_TO_KEY,f7 as SignalKey,H as SignalType,f8 as SortDirection,S as StatusType,f9 as StringOperation,c as Tier,fa as WorkloadRolloutReason,dx as WorkloadRolloutStatus}from"./chunks/ui-components-D_eeOuIL.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"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
1
+ export{f as ActionKeyTypes,g as ActionType,eK as AgentInjectedReason,eL as BooleanOperation,at as CodeAttributesKeyTypes,eM as ConditionType,V as Crud,C as CustomInstrumentationsKeyTypes,b8 as DesiredStateProgress,eN as DestinationTypes,E as EntityTypes,ah as ExtractionDataFormat,l as FieldTypes,G as GolangCustomProbe,H as HeadersCollectionKeyTypes,dQ as InputTypes,eO as InstallationMethod,eP as InstallationStatus,n as InstrumentationRuleType,eQ as IntrumentationStatus,J as JavaCustomProbe,eR as JsonOperation,a5 as K8sAttributesFrom,K as K8sResourceKind,eS as K8sWorkloadContainerAgentConfigTracesHeadSamplingSpanMetricsMode,eT as ListDirection,eU as NumberOperation,eV as OtelDistroName,eW as OtherEntityTypes,bd as OtherStatus,aR as OtherStatusType,av as PayloadCollectionKeyTypes,P as PlatformType,eX as PodContainerLifecycleStatus,eY as PodContainerStatus,eZ as PodPhase,e_ as Profile,bt as ProgrammingLanguages,e$ as SIGNAL_KEY_TO_TYPE,f0 as SIGNAL_TYPE_TO_KEY,f1 as SignalKey,S as SignalType,f2 as SortDirection,o as StatusType,f3 as StringOperation,T as Tier,f4 as WorkloadRolloutReason,dt as WorkloadRolloutStatus}from"./chunks/ui-components-B1TCLO_N.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"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
package/lib/visuals.js CHANGED
@@ -1 +1 @@
1
- export{fb as VISUAL_ODIGOS_LOGO_HEIGHT,fc as VISUAL_ODIGOS_LOGO_WIDTH,eM as VisualGreenRings,fd as VisualOdigosLogo,c8 as VisualPurpleRings}from"./chunks/ui-components-D_eeOuIL.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"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
1
+ export{f5 as VISUAL_ODIGOS_LOGO_HEIGHT,f6 as VISUAL_ODIGOS_LOGO_WIDTH,eI as VisualGreenRings,f7 as VisualOdigosLogo,c3 as VisualPurpleRings}from"./chunks/ui-components-B1TCLO_N.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"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odigos/ui-kit",
3
- "version": "0.0.254",
3
+ "version": "0.0.256",
4
4
  "author": "Odigos",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,49 +0,0 @@
1
- import{jsx as e,jsxs as o,Fragment as t}from"react/jsx-runtime";import{memo as i,useRef as r,useEffect as n}from"react";import"@xyflow/react/dist/style.css";import d,{useTheme as s}from"styled-components";import{N as a,F as l,I as c,T as p,S as h,g as m,u,a as g,b}from"./ui-components-D_eeOuIL.js";import{Handle as x,Position as f,ReactFlowProvider as y,ReactFlow as w,Controls as v,ControlButton as N,useReactFlow as k}from"@xyflow/react";import{RefreshIcon as $}from"../icons.js";const C=d(l)`
2
- max-width: 300px;
3
- padding: 12px;
4
- border-radius: 12px;
5
- background-color: ${({theme:e})=>e.colors.dropdown_bg};
6
- justify-content: center;
7
- `,E=i(({id:o,data:t})=>{const{title:i,subTitle:r}=t;return e(C,{"data-id":o,children:e(a,{title:i,subTitle:r})})});E.displayName=E.name;const V=d.div`
8
- padding: 6px;
9
- border-radius: 12px;
10
- background-color: ${({theme:e})=>e.colors.dropdown_bg};
11
- cursor: pointer;
12
- ${({$isVirtual:e,theme:o})=>e&&`\n border: 1px dashed ${o.colors.border};\n opacity: 0.8;\n `}
13
- `,_=d.div`
14
- position: relative;
15
- `,M=d.div`
16
- position: absolute;
17
- top: 100%;
18
- margin-top: 4px;
19
- left: 50%;
20
- transform: translateX(-50%);
21
- display: flex;
22
- flex-direction: column;
23
- align-items: center;
24
- gap: 2px;
25
- width: 140px;
26
- text-align: center;
27
- `,T=i(({id:i,data:r})=>{const{id:n,status:d,title:a,icons:l,isVirtual:u}=r,g=s(),b=u||d!==h.Error?null:m(d,g);return o(t,{children:[e(x,{type:"source",position:f.Right,style:{visibility:"hidden"}}),e(x,{type:"target",position:f.Left,style:{visibility:"hidden"}}),o(_,{"data-id":i,children:[e(V,{$isVirtual:u,children:e(c,{id:n,icons:l,status:u?void 0:d})}),o(M,{children:[b&&e(b,{}),e(p,{size:12,style:{textAlign:"center",wordBreak:"break-word",lineHeight:"1.3"},children:a})]})]})]})});T.displayName=T.name;const z={duration:300,padding:.1,includeHiddenNodes:!0},j=d.div`
28
- height: 100%;
29
- .react-flow__attribution {
30
- visibility: hidden;
31
- }
32
- `,A=d.div`
33
- button {
34
- padding: 8px;
35
- margin: 8px;
36
- border-radius: 8px;
37
- border: 1px solid ${({theme:e})=>e.colors.border} !important;
38
- background-color: ${({theme:e})=>e.colors.dropdown_bg};
39
- path {
40
- fill: ${({theme:e})=>e.text.secondary};
41
- }
42
- &:hover {
43
- background-color: ${({theme:e})=>e.colors.dropdown_bg_2};
44
- }
45
- &:last-child svg {
46
- transform: scale(1.4);
47
- }
48
- }
49
- `,F={[b.MapItem]:T,[b.NoData]:E},I=({trigger:e})=>{const{fitView:o}=k(),t=r(!0);return n(()=>{t.current?t.current=!1:e>0&&requestAnimationFrame(()=>o(z))},[e,o]),null},L=({nodes:t,edges:i,onNodesChange:r,onEdgesChange:n,fitViewTrigger:d=0,zoomOnScroll:s=!1,onEdgeClick:a,onNodeMouseEnter:l,onNodeMouseLeave:c,onRefresh:p})=>{const{onClickNode:h}=u(),{setActiveNodeType:m,setActiveNodeId:b}=g();return o(w,{zoomOnScroll:s,nodes:t,nodeTypes:F,edges:i,onNodeClick:h,onEdgeClick:a,onNodeMouseEnter:l,onNodeMouseLeave:c,onNodesChange:r,onEdgesChange:n,onBlur:()=>{m(null),b(null)},children:[e(I,{trigger:d}),e(A,{children:e(v,{position:"bottom-right",orientation:"horizontal",showInteractive:!1,showZoom:!0,showFitView:!0,fitViewOptions:z,children:p&&e(N,{onClick:p,children:e($,{size:20})})})})]})},O=o=>e(j,{children:e(y,{children:e(L,{...o})})});export{O as F,T as M,E as N};