@odigos/ui-kit 0.0.210 → 0.0.212

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 (56) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/lib/chunks/index-CTFaJvLO.js +3 -0
  3. package/lib/chunks/ui-components-DQ5eBxQh.js +2387 -0
  4. package/lib/chunks/vendor-C150cdxb.js +1 -0
  5. package/lib/components/_v2/index.d.ts +1 -0
  6. package/lib/components/_v2/stepper/index.d.ts +11 -0
  7. package/lib/components/v2.js +1 -1
  8. package/lib/components.js +1 -1
  9. package/lib/constants/destinations/index.d.ts +5 -0
  10. package/lib/constants/strings/index.d.ts +12 -0
  11. package/lib/constants.js +1 -1
  12. package/lib/containers/_v2/_drawers/add-action-drawer/index.d.ts +2 -2
  13. package/lib/containers/_v2/_drawers/add-destination-drawer/form-column/index.d.ts +4 -7
  14. package/lib/containers/_v2/_drawers/add-destination-drawer/helpers.d.ts +1 -9
  15. package/lib/containers/_v2/_drawers/add-destination-drawer/index.d.ts +10 -5
  16. package/lib/containers/_v2/_drawers/add-destination-drawer/lists-column/index.d.ts +3 -5
  17. package/lib/containers/_v2/_drawers/add-destination-drawer/types.d.ts +1 -6
  18. package/lib/containers/_v2/_drawers/add-rule-drawer/index.d.ts +2 -2
  19. package/lib/containers/_v2/_drawers/add-source-drawer/index.d.ts +10 -5
  20. package/lib/containers/_v2/_drawers/add-source-drawer/namespaces-column/list/index.d.ts +1 -0
  21. package/lib/containers/_v2/_forms/add-destination-form/context.d.ts +36 -0
  22. package/lib/containers/_v2/_forms/add-destination-form/dynamic-fields/index.d.ts +1 -0
  23. package/lib/containers/_v2/_forms/add-destination-form/index.d.ts +4 -5
  24. package/lib/containers/_v2/central-connections/index.d.ts +2 -1
  25. package/lib/containers/_v2/index.d.ts +1 -0
  26. package/lib/containers/_v2/onboarding/background/index.d.ts +7 -0
  27. package/lib/containers/_v2/onboarding/get-started/index.d.ts +5 -0
  28. package/lib/containers/_v2/onboarding/index.d.ts +14 -0
  29. package/lib/containers/_v2/onboarding/summary/index.d.ts +12 -0
  30. package/lib/containers/_v2/pipeline-collectors/general-info/yaml-drawer/index.d.ts +1 -1
  31. package/lib/containers/service-map/helpers/aggregate-service-map.d.ts +6 -0
  32. package/lib/containers/service-map/helpers/build-edges.d.ts +3 -3
  33. package/lib/containers/service-map/helpers/build-map-nodes.d.ts +4 -3
  34. package/lib/containers/service-map/service-map-drawer.d.ts +17 -0
  35. package/lib/containers/v2.js +91 -30
  36. package/lib/containers.js +152 -129
  37. package/lib/contexts.js +1 -1
  38. package/lib/functions.js +1 -1
  39. package/lib/hooks.js +1 -1
  40. package/lib/icons.js +1 -1
  41. package/lib/snippets/_v2/index.d.ts +1 -0
  42. package/lib/snippets/_v2/odigos-logo-text-by-tier/index.d.ts +5 -0
  43. package/lib/snippets/react-flow/flow.d.ts +4 -1
  44. package/lib/snippets/react-flow/nodes/map-item-node.d.ts +3 -2
  45. package/lib/snippets.js +1 -1
  46. package/lib/store.js +1 -1
  47. package/lib/theme.js +1 -1
  48. package/lib/types/destinations/index.d.ts +9 -8
  49. package/lib/types/service-map/index.d.ts +22 -0
  50. package/lib/types/snapshot/index.d.ts +4 -4
  51. package/lib/types.js +1 -1
  52. package/lib/visuals.js +1 -1
  53. package/package.json +26 -26
  54. package/lib/chunks/index-C27kJv0Y.js +0 -3
  55. package/lib/chunks/ui-components-CxdeQcW1.js +0 -2389
  56. package/lib/chunks/vendor-D99eCWta.js +0 -1
@@ -1,6 +1,7 @@
1
1
  export * from './actions';
2
2
  export * from './cancel-modal';
3
3
  export * from './delete-modal';
4
+ export * from './odigos-logo-text-by-tier';
4
5
  export * from './rich-title';
5
6
  export * from './signals-checkbox-list';
6
7
  export * from './upgrade-modal';
@@ -0,0 +1,5 @@
1
+ import { type FC } from 'react';
2
+ export interface OdigosLogoTextByTierProps {
3
+ size?: number;
4
+ }
5
+ export declare const OdigosLogoTextByTier: FC<OdigosLogoTextByTierProps>;
@@ -6,8 +6,11 @@ interface Props {
6
6
  edges: Edge[];
7
7
  onNodesChange: OnNodesChange<Node>;
8
8
  onEdgesChange: OnEdgesChange<Edge>;
9
- fitView?: boolean;
9
+ fitViewTrigger?: number;
10
10
  zoomOnScroll?: boolean;
11
+ onEdgeClick?: (event: React.MouseEvent, edge: Edge) => void;
12
+ onNodeMouseEnter?: (event: React.MouseEvent, node: Node) => void;
13
+ onNodeMouseLeave?: (event: React.MouseEvent, node: Node) => void;
11
14
  }
12
15
  export declare const Flow: React.FC<Props>;
13
16
  export {};
@@ -1,12 +1,13 @@
1
1
  import React from 'react';
2
2
  import { type Node, type NodeProps } from '@xyflow/react';
3
- import { NodeTypes, type ServiceMapFromSource, StatusType, type SVG } from '@/types';
3
+ import { NodeTypes, type AggregatedService, StatusType, type SVG } from '@/types';
4
4
  type MapItemNodeProps = NodeProps<Node<{
5
5
  id: string;
6
6
  title: string;
7
7
  icons: SVG[];
8
+ isVirtual?: boolean;
8
9
  status?: StatusType;
9
- serviceMapEntry?: ServiceMapFromSource;
10
+ aggService?: AggregatedService;
10
11
  }, NodeTypes.Base>>;
11
12
  declare const MapItemNode: React.FC<MapItemNodeProps>;
12
13
  export { MapItemNode, type MapItemNodeProps };
package/lib/snippets.js CHANGED
@@ -1 +1 @@
1
- export{b1 as AddButton,cv as CopyText,cr as EditButton,cq as Flow,dE as MapItemNode,dF as NoDataNode,c8 as NoteBackToSummary,cx as PodContainer,cE as SourceContainer}from"./chunks/ui-components-CxdeQcW1.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-D99eCWta.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";
1
+ export{b3 as AddButton,cz as CopyText,cv as EditButton,cu as Flow,dH as MapItemNode,dI as NoDataNode,cb as NoteBackToSummary,cB as PodContainer,cI as SourceContainer}from"./chunks/ui-components-DQ5eBxQh.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,dv as useActiveNodeStore,cK as useDarkMode,ad as useDataStreamStore,b8 as useDrawerStore,ax as useEntityStore,bv as useFilterStore,bj as useModalStore,cj as useNotificationStore,ao as useProgressStore,bL as useSelectedStore,c6 as useSetupStore}from"./chunks/ui-components-CxdeQcW1.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-D99eCWta.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";
1
+ export{as as ProgressKeys,ct as useActiveNodeStore,cO as useDarkMode,H as useDataStreamStore,ba as useDrawerStore,ay as useEntityStore,bx as useFilterStore,bl as useModalStore,cm as useNotificationStore,ao as useProgressStore,bN as useSelectedStore,c8 as useSetupStore}from"./chunks/ui-components-DQ5eBxQh.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{dw as Provider,dx as animations,dy as opacity,dz as palettes}from"./chunks/ui-components-CxdeQcW1.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-D99eCWta.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";
1
+ export{dz as Provider,dA as animations,dB as opacity,dC as palettes}from"./chunks/ui-components-DQ5eBxQh.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";
@@ -143,12 +143,6 @@ export interface DestinationDynamicField {
143
143
  placeholder?: string;
144
144
  options?: DropdownProps['options'];
145
145
  }
146
- export interface TestConnectionResponse {
147
- succeeded: boolean;
148
- message: string;
149
- reason: string;
150
- destinationType?: DestinationTypes;
151
- }
152
146
  export interface GetDestinationCategoriesResult {
153
147
  destinationCategories: {
154
148
  categories: DestinationCategories;
@@ -166,14 +160,21 @@ export interface DestinationFormData {
166
160
  type: Destination['destinationType']['type'];
167
161
  name: Destination['destinationType']['displayName'];
168
162
  currentStreamName: string;
163
+ disabled: Destination['disabled'];
169
164
  exportedSignals: Destination['exportedSignals'];
170
165
  fields: {
171
166
  key: string;
172
167
  value: string;
173
168
  }[];
174
- disabled: Destination['disabled'];
175
169
  }
176
- export type TestConnectionFunc = (payload: DestinationFormData) => Promise<TestConnectionResponse | undefined>;
177
170
  export type CreateDestinationFunc = (payload: DestinationFormData, connectionIds?: string[]) => Promise<{
178
171
  error?: string;
179
172
  } | undefined>;
173
+ export interface TestConnectionResponse {
174
+ destinationType: DestinationTypes;
175
+ statusCode: number;
176
+ succeeded: boolean;
177
+ message?: string | null;
178
+ reason?: string | null;
179
+ }
180
+ export type TestConnectionFunc = (payload: DestinationFormData, connectionIds?: string[]) => Promise<TestConnectionResponse | undefined>;
@@ -1,8 +1,11 @@
1
1
  export interface ServiceMapFromSource {
2
+ nodeId: string;
2
3
  serviceName: string;
3
4
  services: ServiceMapToSource[];
4
5
  }
5
6
  export interface ServiceMapToSource {
7
+ nodeId: string;
8
+ isVirtual: boolean;
6
9
  serviceName: string;
7
10
  requests: number;
8
11
  dateTime: string;
@@ -12,3 +15,22 @@ export interface PeerSources {
12
15
  inbound: ServiceMapToSource[];
13
16
  outbound: ServiceMapToSource[];
14
17
  }
18
+ export interface DimensionDetail {
19
+ value: string;
20
+ requests: number;
21
+ dateTime: string;
22
+ }
23
+ export interface AggregatedConnection {
24
+ targetGraphKey: string;
25
+ targetServiceName: string;
26
+ totalRequests: number;
27
+ lastDateTime: string;
28
+ details: DimensionDetail[];
29
+ }
30
+ export interface AggregatedService {
31
+ graphKey: string;
32
+ serviceName: string;
33
+ isVirtual: boolean;
34
+ connections: AggregatedConnection[];
35
+ }
36
+ export type AggregatedServiceMap = AggregatedService[];
@@ -16,13 +16,13 @@ export interface ClusterSnapshot {
16
16
  clusterId: string;
17
17
  clusterName: string;
18
18
  namespaces: NamespaceSnapshot[];
19
- timestamp: number;
19
+ timestamp?: number;
20
20
  }
21
21
  export interface AllClusterSnapshots {
22
22
  clusters: ClusterSnapshot[];
23
- totalWorkloads: number;
24
- totalNamespaces: number;
25
- lastUpdated: number;
23
+ totalWorkloads?: number;
24
+ totalNamespaces?: number;
25
+ lastUpdated?: number;
26
26
  }
27
27
  export type GetAllClusterSnapshots = () => Promise<AllClusterSnapshots | undefined>;
28
28
  export type GetClusterSnapshot = (clusterId: string) => Promise<ClusterSnapshot | undefined>;
package/lib/types.js CHANGED
@@ -1 +1 @@
1
- export{cQ as ActionCategory,A as ActionKeyTypes,l as ActionType,cR as AddNodeTypes,cS as BooleanOperation,J as CodeAttributesKeyTypes,bi as Crud,Y as CustomInstrumentationsKeyTypes,bN as DesiredStateProgress,cT as DestinationTypes,cU as EdgeTypes,aq as EntityTypes,k as FieldTypes,U as GolangCustomProbe,P as HeadersCollectionKeyTypes,c as InputTypes,cV as InstallationMethod,Z as InstrumentationRuleType,cW as IntrumentationStatus,X as JavaCustomProbe,cX as JsonOperation,K as K8sAttributesFrom,cC as K8sResourceKind,cY as ListDirection,cp as NodeTypes,cZ as NumberOperation,c_ as OtelDistroName,c9 as OtherEntityTypes,bs as OtherStatus,ai as OtherStatusType,Q as PayloadCollectionKeyTypes,c$ as PlatformType,d0 as PodContainerLifecycleStatus,d1 as PodContainerStatus,d2 as PodPhase,d3 as Profile,cD as ProgrammingLanguages,d4 as SIGNAL_KEY_TO_TYPE,ce as SIGNAL_TYPE_TO_KEY,d5 as SignalKey,G as SignalType,d6 as SortDirection,s as StatusType,d7 as StringOperation,aj as Tier,aR as WorkloadRolloutStatus}from"./chunks/ui-components-CxdeQcW1.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-D99eCWta.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";
1
+ export{cU as ActionCategory,A as ActionKeyTypes,l as ActionType,cV as AddNodeTypes,cW as BooleanOperation,X as CodeAttributesKeyTypes,bk as Crud,a1 as CustomInstrumentationsKeyTypes,bP as DesiredStateProgress,cX as DestinationTypes,cY as EdgeTypes,ar as EntityTypes,k as FieldTypes,$ as GolangCustomProbe,Z as HeadersCollectionKeyTypes,c as InputTypes,cZ as InstallationMethod,a2 as InstrumentationRuleType,c_ as IntrumentationStatus,a0 as JavaCustomProbe,c$ as JsonOperation,K as K8sAttributesFrom,cG as K8sResourceKind,d0 as ListDirection,cs as NodeTypes,d1 as NumberOperation,d2 as OtelDistroName,cc as OtherEntityTypes,bu as OtherStatus,aj as OtherStatusType,_ as PayloadCollectionKeyTypes,d3 as PlatformType,d4 as PodContainerLifecycleStatus,d5 as PodContainerStatus,d6 as PodPhase,d7 as Profile,cH as ProgrammingLanguages,d8 as SIGNAL_KEY_TO_TYPE,ch as SIGNAL_TYPE_TO_KEY,d9 as SignalKey,P as SignalType,da as SortDirection,t as StatusType,db as StringOperation,m as Tier,aT as WorkloadRolloutStatus}from"./chunks/ui-components-DQ5eBxQh.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{dT as VISUAL_ODIGOS_LOGO_HEIGHT,dU as VISUAL_ODIGOS_LOGO_WIDTH,V as VisualGreenRings,dV as VisualOdigosLogo}from"./chunks/ui-components-CxdeQcW1.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-D99eCWta.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";
1
+ export{dW as VISUAL_ODIGOS_LOGO_HEIGHT,dX as VISUAL_ODIGOS_LOGO_WIDTH,V as VisualGreenRings,dY as VisualOdigosLogo}from"./chunks/ui-components-DQ5eBxQh.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.210",
3
+ "version": "0.0.212",
4
4
  "author": "Odigos",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -10,12 +10,12 @@
10
10
  "scripts": {
11
11
  "dev": "storybook dev -p 6006",
12
12
  "prebuild": "rm -rf lib",
13
- "build": "NODE_ENV=production rollup -c --bundleConfigAsCjs",
14
- "build:analyze": "NODE_ENV=production rollup -c --bundleConfigAsCjs && open bundle-analysis.html",
13
+ "build": "NODE_ENV=production NODE_OPTIONS=--max-old-space-size=4096 rollup -c",
14
+ "build:analyze": "ANALYZE=true NODE_ENV=production NODE_OPTIONS=--max-old-space-size=4096 rollup -c && open bundle-analysis.html",
15
15
  "build-storybook": "storybook build",
16
- "watch": "rollup -c --bundleConfigAsCjs -w",
17
- "size": "NODE_ENV=production rollup -c --bundleConfigAsCjs --silent",
18
- "lint": "eslint . --ext .js,.jsx,.ts,.tsx --ignore-pattern ./lib --ignore-pattern ./node_modules"
16
+ "watch": "rollup -c -w",
17
+ "size": "NODE_ENV=production rollup -c --silent",
18
+ "lint": "eslint ./src --ext .js,.jsx,.ts,.tsx"
19
19
  },
20
20
  "release": {
21
21
  "branches": [
@@ -100,50 +100,50 @@
100
100
  "peerDependencies": {
101
101
  "react": "19.2.4",
102
102
  "react-dom": "19.2.4",
103
- "styled-components": "6.2.0"
103
+ "styled-components": "6.3.12"
104
104
  },
105
105
  "dependencies": {
106
106
  "@xyflow/react": "^12.10.1",
107
107
  "elkjs": "^0.11.1",
108
- "javascript-time-ago": "^2.6.2",
108
+ "javascript-time-ago": "^2.6.4",
109
109
  "lottie-react": "^2.4.1",
110
110
  "prism-react-renderer": "^2.4.1",
111
111
  "react": "19.2.4",
112
112
  "react-dom": "19.2.4",
113
113
  "react-error-boundary": "^6.1.1",
114
- "styled-components": "6.2.0",
115
- "virtua": "^0.48.6",
116
- "zustand": "^5.0.11"
114
+ "styled-components": "6.3.12",
115
+ "virtua": "^0.48.8",
116
+ "zustand": "^5.0.12"
117
117
  },
118
118
  "devDependencies": {
119
119
  "@babel/core": "^7.29.0",
120
- "@babel/preset-env": "^7.29.0",
120
+ "@babel/preset-env": "^7.29.2",
121
121
  "@babel/preset-react": "^7.28.5",
122
122
  "@babel/preset-typescript": "^7.28.5",
123
- "@eslint/eslintrc": "^3.3.4",
124
- "@rollup/plugin-commonjs": "^29.0.0",
123
+ "@eslint/eslintrc": "^3.3.5",
124
+ "@rollup/plugin-commonjs": "^29.0.2",
125
125
  "@rollup/plugin-json": "^6.1.0",
126
126
  "@rollup/plugin-node-resolve": "^16.0.3",
127
- "@rollup/plugin-terser": "^0.4.4",
127
+ "@rollup/plugin-terser": "^1.0.0",
128
128
  "@rollup/plugin-typescript": "^12.3.0",
129
129
  "@storybook/addon-webpack5-compiler-babel": "^4.0.0",
130
- "@storybook/react-webpack5": "10.2.12",
131
- "@types/node": "^25.3.3",
130
+ "@storybook/react-webpack5": "10.3.1",
131
+ "@types/node": "^25.5.0",
132
132
  "@types/react": "^19.2.14",
133
133
  "@types/react-dom": "^19.2.3",
134
- "@typescript-eslint/eslint-plugin": "^8.56.1",
135
- "@typescript-eslint/parser": "^8.56.1",
136
- "babel-loader": "^10.0.0",
134
+ "@typescript-eslint/eslint-plugin": "^8.57.1",
135
+ "@typescript-eslint/parser": "^8.57.1",
136
+ "babel-loader": "^10.1.1",
137
137
  "babel-plugin-styled-components": "^2.1.4",
138
- "eslint": "^9.39.2",
138
+ "eslint": "^9.39.4",
139
139
  "eslint-plugin-react": "^7.37.5",
140
- "eslint-plugin-storybook": "10.2.12",
141
- "postcss": "^8.5.6",
142
- "rollup": "^4.57.1",
140
+ "eslint-plugin-storybook": "10.3.1",
141
+ "postcss": "^8.5.8",
142
+ "rollup": "^4.60.0",
143
143
  "rollup-plugin-filesize": "^10.0.0",
144
144
  "rollup-plugin-postcss": "^4.0.2",
145
- "rollup-plugin-visualizer": "^6.0.5",
146
- "storybook": "10.2.12",
145
+ "rollup-plugin-visualizer": "^7.0.1",
146
+ "storybook": "10.3.1",
147
147
  "typescript": "^5.9.3"
148
148
  }
149
149
  }
@@ -1,3 +0,0 @@
1
- import{jsx as t}from"react/jsx-runtime";import{useState as o,useMemo as e}from"react";import i from"styled-components";import{as as a,h as s,j as n,aE as r,aC as c,aw as l,cP as p,n as m,N as d}from"./ui-components-CxdeQcW1.js";import{VIcon as u,CopyIcon as f,ChevronUpIcon as h,ChevronDownIcon as y,YamlIcon as b}from"../icons.js";const C=i.div`
2
- padding: 0 12px;
3
- `,j=({title:i="YAML",yaml:j,defaultOpen:k})=>{const{clickCopy:Y,isCopied:g}=a(),[v,x]=o(k??!1),A=e(()=>j?[{id:c(),type:r.Button,buttonProps:{variant:n.Secondary,size:s.S,leftIcon:g?u:f,onClick:()=>Y(j||""),disabled:g}},{id:c(),type:r.Button,buttonProps:{variant:n.Secondary,size:s.S,leftIcon:v?h:y,onClick:()=>x(t=>!t)}}]:[],[j,g,v]);return t(l,{richTitle:{icon:b,title:i},actions:A,children:v&&t(C,{children:j?t(p,{code:j,language:"yaml",theme:"duotoneDark"}):t(m,{children:t(d,{title:"YAML not found",subTitle:"The YAML for this resource is not available"})})})})};export{j as Y};