@devtron-labs/devtron-fe-common-lib 1.13.0-pre-4 → 1.13.0-pre-6

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 (85) hide show
  1. package/dist/{@common-rjsf-B9RVxEzF.js → @code-editor-DDIbDgoG.js} +11655 -11486
  2. package/dist/@common-rjsf-AMVnhZkY.js +617 -0
  3. package/dist/{@framer-motion-Hh5HoZEj.js → @framer-motion-DyOLEeMN.js} +1 -1
  4. package/dist/{@react-dates-RAg1eRYJ.js → @react-dates-B7d8RWU9.js} +14 -14
  5. package/dist/{@react-select-Cyc43HrK.js → @react-select-Coo19Q6a.js} +1 -1
  6. package/dist/{@react-virtualized-sticky-tree-Cby7tsJ8.js → @react-virtualized-sticky-tree-BPjPJDIR.js} +1 -1
  7. package/dist/{@vendor-BZpoz8Ez.js → @vendor-D9q4wrnL.js} +10602 -10592
  8. package/dist/Common/Helper.d.ts +1 -0
  9. package/dist/Common/RJSF/Form.d.ts +1 -1
  10. package/dist/Shared/Components/ActionMenu/ActionMenu.component.d.ts +1 -2
  11. package/dist/Shared/Components/ActionMenu/ActionMenuItem.d.ts +2 -0
  12. package/dist/Shared/Components/ActionMenu/index.d.ts +2 -2
  13. package/dist/Shared/Components/ActionMenu/types.d.ts +88 -11
  14. package/dist/Shared/Components/ActionMenu/useActionMenu.hook.d.ts +275 -0
  15. package/dist/Shared/Components/ActionMenu/utils.d.ts +7 -0
  16. package/dist/Shared/Components/AppStatusModal/AppStatusBody.d.ts +1 -1
  17. package/dist/Shared/Components/AppStatusModal/AppStatusModal.component.d.ts +1 -1
  18. package/dist/Shared/Components/AppStatusModal/AppStatusModalTabList.d.ts +3 -0
  19. package/dist/Shared/Components/AppStatusModal/index.d.ts +1 -0
  20. package/dist/Shared/Components/AppStatusModal/service.d.ts +4 -3
  21. package/dist/Shared/Components/AppStatusModal/types.d.ts +52 -6
  22. package/dist/Shared/Components/AppStatusModal/utils.d.ts +5 -2
  23. package/dist/Shared/Components/CICDHistory/DeploymentStatusBreakdown.d.ts +1 -1
  24. package/dist/Shared/Components/CICDHistory/DeploymentStatusDetailRow.d.ts +1 -1
  25. package/dist/Shared/Components/CICDHistory/LogStageAccordion.d.ts +1 -1
  26. package/dist/Shared/Components/CICDHistory/service.d.ts +3 -0
  27. package/dist/Shared/Components/CICDHistory/types.d.ts +11 -71
  28. package/dist/Shared/Components/CICDHistory/utils.d.ts +3 -2
  29. package/dist/Shared/Components/DeploymentStatusBreakdown/constants.d.ts +10 -0
  30. package/dist/Shared/Components/DeploymentStatusBreakdown/index.d.ts +3 -0
  31. package/dist/Shared/Components/DeploymentStatusBreakdown/types.d.ts +22 -0
  32. package/dist/Shared/Components/DeploymentStatusBreakdown/utils.d.ts +20 -0
  33. package/dist/Shared/Components/Header/HeaderWithCreateButton/HeaderWithCreateButon.d.ts +1 -3
  34. package/dist/Shared/Components/Header/HeaderWithCreateButton/types.d.ts +10 -0
  35. package/dist/Shared/Components/Header/HeaderWithCreateButton/utils.d.ts +2 -0
  36. package/dist/Shared/Components/Header/HelpButton.d.ts +2 -0
  37. package/dist/Shared/Components/Header/constants.d.ts +5 -4
  38. package/dist/Shared/Components/Header/types.d.ts +15 -9
  39. package/dist/Shared/Components/Header/utils.d.ts +5 -1
  40. package/dist/Shared/Components/Icon/Icon.d.ts +8 -0
  41. package/dist/Shared/Components/Icon/IconBase.d.ts +1 -1
  42. package/dist/Shared/Components/Icon/types.d.ts +29 -7
  43. package/dist/Shared/Components/Popover/Popover.component.d.ts +8 -0
  44. package/dist/Shared/Components/Popover/index.d.ts +3 -0
  45. package/dist/Shared/Components/Popover/types.d.ts +105 -0
  46. package/dist/Shared/Components/Popover/usePopover.hook.d.ts +2 -0
  47. package/dist/Shared/Components/Popover/utils.d.ts +92 -0
  48. package/dist/Shared/Components/SelectPicker/common.d.ts +1 -0
  49. package/dist/Shared/Components/SelectPicker/type.d.ts +4 -0
  50. package/dist/Shared/Components/TabGroup/TabGroup.helpers.d.ts +1 -1
  51. package/dist/Shared/Components/TabGroup/TabGroup.types.d.ts +33 -7
  52. package/dist/Shared/Components/TargetPlatforms/TargetPlatformListTooltip.d.ts +1 -1
  53. package/dist/Shared/Components/TargetPlatforms/types.d.ts +1 -2
  54. package/dist/Shared/Components/index.d.ts +1 -0
  55. package/dist/Shared/Helpers.d.ts +2 -2
  56. package/dist/Shared/constants.d.ts +2 -22
  57. package/dist/Shared/types.d.ts +100 -2
  58. package/dist/assets/@code-editor.css +1 -0
  59. package/dist/assets/@common-rjsf.css +1 -1
  60. package/dist/assets/ic-celebration.77350694.svg +238 -0
  61. package/dist/assets/ic-chat-circle-online.51348da5.svg +4 -0
  62. package/dist/assets/{ic-disconnect.26bad827.svg → ic-disconnect.2ad261fc.svg} +1 -1
  63. package/dist/assets/ic-discord-fill.103b579a.svg +3 -0
  64. package/dist/assets/ic-edit.3249ed32.svg +3 -0
  65. package/dist/assets/ic-file-edit.96a172c7.svg +3 -0
  66. package/dist/assets/ic-file.c3c45e13.svg +3 -0
  67. package/dist/assets/ic-files.b0ebea46.svg +3 -0
  68. package/dist/assets/ic-man-on-rocket.7f67e914.svg +94 -0
  69. package/dist/assets/ic-megaphone-right.9d6bcd36.svg +3 -0
  70. package/dist/assets/ic-path.d4fef3b0.svg +3 -0
  71. package/dist/index.js +888 -872
  72. package/package.json +1 -1
  73. package/dist/Shared/Components/ActionMenu/ActionMenuOption.d.ts +0 -3
  74. package/dist/Shared/Components/CICDHistory/ErrorInfoStatusBar.d.ts +0 -2
  75. package/dist/Shared/Components/Header/HelpNav.d.ts +0 -3
  76. package/dist/assets/ic-charts.f41e185f.svg +0 -19
  77. package/dist/assets/ic-chat-circle-dots.e15514f8.svg +0 -23
  78. package/dist/assets/ic-check-grey.f556e371.svg +0 -21
  79. package/dist/assets/ic-disconnected.551d6161.svg +0 -29
  80. package/dist/assets/ic-discord-fill.1a1b291d.svg +0 -19
  81. package/dist/assets/ic-feedback.d32fa6b0.svg +0 -19
  82. package/dist/assets/ic-files.fc290dee.svg +0 -19
  83. package/dist/assets/ic-k8s-job.f4414c10.svg +0 -19
  84. package/dist/assets/ic-onboarding.c98f9ef9.svg +0 -19
  85. package/dist/assets/ic-timeout-red.5eda1010.svg +0 -21
@@ -1,8 +1,8 @@
1
- import { CSSProperties, ReactElement, ReactNode } from 'react';
1
+ import { CSSProperties, MutableRefObject, ReactElement, ReactNode } from 'react';
2
2
  import { SupportedKeyboardKeysType } from '@Common/Hooks/UseRegisterShortcut/types';
3
3
  import { DeploymentAppTypes, FilterConditionsListType, ImageComment, OptionType, PaginationProps, PromotionApprovalMetadataType, ReleaseTag, ResponseType, UserApprovalMetadataType, useScrollable } from '../../../Common';
4
4
  import { DeploymentStageType } from '../../constants';
5
- import { AggregationKeys, GitTriggers, Node, NodeType, ResourceKindType, ResourceVersionType, TargetPlatformsDTO } from '../../types';
5
+ import { AggregationKeys, AppDetails, DeploymentStatusDetailsBreakdownDataType, DeploymentStatusDetailsType, DeploymentStatusTimelineType, GitTriggers, Node, NodeType, ResourceKindType, ResourceVersionType, TargetPlatformsDTO } from '../../types';
6
6
  import { TargetPlatformBadgeListProps } from '../TargetPlatforms';
7
7
  export declare enum HistoryComponentType {
8
8
  CI = "CI",
@@ -296,66 +296,7 @@ export type FinishedType = {
296
296
  status?: never;
297
297
  finishedOn?: never;
298
298
  });
299
- export interface SyncStageResourceDetail {
300
- id: number;
301
- cdWorkflowRunnerId: number;
302
- resourceGroup: string;
303
- resourceKind: string;
304
- resourceName: string;
305
- resourcePhase: string;
306
- resourceStatus: string;
307
- statusMessage: string;
308
- }
309
- export interface DeploymentStatusDetailsTimelineType {
310
- id: number;
311
- cdWorkflowRunnerId: number;
312
- status: string;
313
- statusDetail: string;
314
- statusTime: string;
315
- resourceDetails?: SyncStageResourceDetail[];
316
- }
317
- export interface DeploymentStatusDetailsType extends Pick<History, 'isDeploymentWithoutApproval'> {
318
- deploymentFinishedOn: string;
319
- deploymentStartedOn: string;
320
- triggeredBy: string;
321
- statusFetchCount: number;
322
- statusLastFetchedAt: string;
323
- timelines: DeploymentStatusDetailsTimelineType[];
324
- wfrStatus?: string;
325
- }
326
- export interface DeploymentStatusDetailsResponse extends ResponseType {
327
- result?: DeploymentStatusDetailsType;
328
- }
329
- interface DeploymentStatusDetailRow {
330
- icon: string;
331
- displayText: ReactNode;
332
- displaySubText: string;
333
- time: string;
334
- resourceDetails?: any;
335
- isCollapsed?: boolean;
336
- kubeList?: {
337
- icon: any;
338
- message: string;
339
- }[];
340
- timelineStatus?: string;
341
- }
342
- export interface DeploymentStatusDetailsBreakdownDataType {
343
- deploymentStatus: string;
344
- deploymentStatusText: string;
345
- deploymentTriggerTime: string;
346
- deploymentEndTime: string;
347
- deploymentError: string;
348
- triggeredBy: string;
349
- nonDeploymentError: string;
350
- deploymentStatusBreakdown: {
351
- DEPLOYMENT_INITIATED: DeploymentStatusDetailRow;
352
- GIT_COMMIT?: DeploymentStatusDetailRow;
353
- ARGOCD_SYNC?: DeploymentStatusDetailRow;
354
- KUBECTL_APPLY?: DeploymentStatusDetailRow;
355
- APP_HEALTH?: DeploymentStatusDetailRow;
356
- HELM_PACKAGE_GENERATED?: DeploymentStatusDetailRow;
357
- };
358
- }
299
+ export type DeploymentStatusDetailsResponse = ResponseType<DeploymentStatusDetailsType>;
359
300
  export interface DeploymentDetailStepsType extends Pick<History, 'isDeploymentWithoutApproval'> {
360
301
  deploymentStatus?: string;
361
302
  deploymentAppType?: DeploymentAppTypes;
@@ -456,19 +397,17 @@ export interface LogsRendererType extends Pick<HistoryLogsProps, 'fullScreenView
456
397
  export interface DeploymentStatusDetailBreakdownType {
457
398
  deploymentStatusDetailsBreakdownData: DeploymentStatusDetailsBreakdownDataType;
458
399
  isVirtualEnvironment?: boolean;
400
+ /**
401
+ * Won't be available if coming directly to deployment history from url
402
+ */
403
+ appDetails: AppDetails | null;
404
+ rootClassName?: string;
459
405
  }
460
- export interface DeploymentStatusDetailRowType {
461
- type: string;
406
+ export interface DeploymentStatusDetailRowType extends Pick<DeploymentStatusDetailBreakdownType, 'appDetails'> {
407
+ type: DeploymentStatusTimelineType;
462
408
  hideVerticalConnector?: boolean;
463
409
  deploymentDetailedData: DeploymentStatusDetailsBreakdownDataType;
464
410
  }
465
- export interface ErrorInfoStatusBarType {
466
- nonDeploymentError: string;
467
- type: string;
468
- errorMessage: string;
469
- hideVerticalConnector?: boolean;
470
- hideErrorIcon?: boolean;
471
- }
472
411
  export interface DeploymentConfigurationsRes extends ResponseType {
473
412
  result?: DeploymentTemplateList[];
474
413
  }
@@ -746,6 +685,7 @@ export interface LogStageAccordionProps extends StageDetailType, Pick<LogsRender
746
685
  */
747
686
  isLoading: boolean;
748
687
  searchIndex: string;
688
+ logsRendererRef: MutableRefObject<HTMLDivElement>;
749
689
  }
750
690
  export interface CreateMarkupReturnType {
751
691
  __html: string;
@@ -1,12 +1,11 @@
1
1
  import { ReactElement } from 'react';
2
2
  import { DeploymentAppTypes } from '../../../Common/Types';
3
- import { Node } from '../../types';
3
+ import { DeploymentStatusBreakdownItemType, Node } from '../../types';
4
4
  import { TabGroupProps } from '../TabGroup';
5
5
  import { DeploymentHistoryResultObject, ExecutionInfoType, History, NodeFilters, NodeStatus, StageStatusType, TriggerHistoryFilterCriteriaProps, TriggerHistoryFilterCriteriaType, WorkflowExecutionStagesMapDTO, WorkflowStageStatusType } from './types';
6
6
  export declare const getTriggerHistoryFilterCriteria: ({ appId, envId, releaseId, showCurrentReleaseDeployments, }: TriggerHistoryFilterCriteriaProps) => TriggerHistoryFilterCriteriaType;
7
7
  export declare const getParsedTriggerHistory: (result: any) => DeploymentHistoryResultObject;
8
8
  export declare const buildHoverHtmlForWebhook: (eventName: any, condition: any, selectors: any) => JSX.Element;
9
- export declare const renderIcon: (iconState: string) => JSX.Element;
10
9
  export declare const getStageStatusIcon: (status: StageStatusType) => JSX.Element;
11
10
  export declare const getLogSearchIndex: ({ stageIndex, lineNumberInsideStage, }: Record<"stageIndex" | "lineNumberInsideStage", number>) => string;
12
11
  export declare const sanitizeWorkflowExecutionStages: (workflowExecutionStages: WorkflowExecutionStagesMapDTO["workflowExecutionStages"]) => ExecutionInfoType | null;
@@ -38,4 +37,6 @@ export declare const getStatusFilters: ({ allNodeCount, missingNodeCount, failed
38
37
  };
39
38
  export declare const getAppStatusIcon: (status: NodeStatus | NodeFilters, hideMessage?: boolean) => JSX.Element;
40
39
  export declare const getTriggerStatusIcon: (status: string) => string;
40
+ export declare const renderDeploymentTimelineIcon: (iconState: DeploymentStatusBreakdownItemType["icon"]) => JSX.Element;
41
+ export declare const getDeploymentTimelineBGColorFromIcon: (icon: DeploymentStatusBreakdownItemType["icon"]) => string;
41
42
  export declare const getTriggerOutputTabs: (triggerDetails: History, deploymentAppType: DeploymentAppTypes) => TabGroupProps["tabs"];
@@ -0,0 +1,10 @@
1
+ import { DEPLOYMENT_STATUS } from '../../constants';
2
+ import { DeploymentPhaseType, DeploymentStatusTimelineType } from '../../types';
3
+ import { WorkflowRunnerStatusDTO } from './types';
4
+ export declare const DEPLOYMENT_STATUS_TEXT_MAP: Readonly<Record<(typeof DEPLOYMENT_STATUS)[keyof typeof DEPLOYMENT_STATUS], string>>;
5
+ export declare const WFR_STATUS_DTO_TO_DEPLOYMENT_STATUS_MAP: Readonly<Record<WorkflowRunnerStatusDTO, (typeof DEPLOYMENT_STATUS)[keyof typeof DEPLOYMENT_STATUS]>>;
6
+ export declare const PROGRESSING_DEPLOYMENT_STATUS: Readonly<(typeof DEPLOYMENT_STATUS)[keyof typeof DEPLOYMENT_STATUS][]>;
7
+ export declare const SUCCESSFUL_DEPLOYMENT_STATUS: typeof PROGRESSING_DEPLOYMENT_STATUS;
8
+ export declare const FAILED_DEPLOYMENT_STATUS: typeof PROGRESSING_DEPLOYMENT_STATUS;
9
+ export declare const PHYSICAL_ENV_DEPLOYMENT_TIMELINE_ORDER: Readonly<DeploymentStatusTimelineType[]>;
10
+ export declare const DEPLOYMENT_PHASES: Readonly<DeploymentPhaseType[]>;
@@ -0,0 +1,3 @@
1
+ export * from './constants';
2
+ export * from './types';
3
+ export * from './utils';
@@ -0,0 +1,22 @@
1
+ import { DEPLOYMENT_STATUS } from '../../constants';
2
+ import { DeploymentStatusBreakdownItemType, DeploymentStatusDetailsType, DeploymentStatusTimelineType } from '../../types';
3
+ export declare enum WorkflowRunnerStatusDTO {
4
+ PROGRESSING = "Progressing",
5
+ ABORTED = "Aborted",
6
+ FAILED = "Failed",
7
+ SUCCEEDED = "Succeeded",
8
+ TIMED_OUT = "TimedOut",
9
+ UNABLE_TO_FETCH = "UnableToFetch",
10
+ STARTING = "Starting",
11
+ QUEUED = "Queued",
12
+ INITIATING = "Initiating",
13
+ HEALTHY = "Healthy",
14
+ DEGRADED = "Degraded"
15
+ }
16
+ export interface ProcessUnableToFetchOrTimedOutStatusType {
17
+ timelineData: DeploymentStatusBreakdownItemType;
18
+ timelineStatusType: DeploymentStatusTimelineType;
19
+ deploymentStatus: typeof DEPLOYMENT_STATUS.UNABLE_TO_FETCH | typeof DEPLOYMENT_STATUS.TIMED_OUT;
20
+ statusLastFetchedAt: DeploymentStatusDetailsType['statusLastFetchedAt'] | null;
21
+ statusFetchCount: DeploymentStatusDetailsType['statusFetchCount'] | null;
22
+ }
@@ -0,0 +1,20 @@
1
+ import { DeploymentStatusDetailsBreakdownDataType, DeploymentStatusDetailsType } from '../../types';
2
+ /**
3
+ * @description
4
+ * This function processes the deployment status details data and returns a breakdown of the deployment status.
5
+ * Cases it handles:
6
+ * 1. If timelines are not present, say the case of helm deployment, we will parse the wfrStatus and put the status and basic deployment info [triggeredBy, deploymentStartedOn, deploymentFinishedOn] into the breakdown data and return it.
7
+ * 2. In case of gitops:
8
+ * - There are five timelines in chronological order:
9
+ * - Deployment Initiated
10
+ * - Git commit
11
+ * - ArgoCD Sync
12
+ * - Kubectl Apply
13
+ * - App Health
14
+ * - Basic flow is we traverse the timelines in order, if find the last status for that specific timeline from response by traversing the timelines in reverse order.
15
+ * - If element is found, we will parse the status and set the icon, display text, time, etc. for that timeline and set the next timeline to inprogress.
16
+ * - If element is not found, we will parse on basis of factors like:
17
+ * - If this timeline is not inprogress and deploymentStatus is progressing, we will set the current timeline to waiting.
18
+ * - In similar fashion based on the deploymentStatus we will set the icon and display text for the timeline.
19
+ */
20
+ export declare const processDeploymentStatusDetailsData: (data?: DeploymentStatusDetailsType) => DeploymentStatusDetailsBreakdownDataType;
@@ -1,5 +1,3 @@
1
- export interface HeaderWithCreateButtonProps {
2
- headerName: string;
3
- }
1
+ import { HeaderWithCreateButtonProps } from './types';
4
2
  export declare const HeaderWithCreateButton: ({ headerName }: HeaderWithCreateButtonProps) => JSX.Element;
5
3
  export default HeaderWithCreateButton;
@@ -0,0 +1,10 @@
1
+ import { ActionMenuProps } from '@Shared/Components/ActionMenu';
2
+ export interface HeaderWithCreateButtonProps {
3
+ headerName: string;
4
+ }
5
+ export declare enum CreateActionMenuItems {
6
+ CUSTOM_APP = "create-custom-app",
7
+ CHART_STORE = "create-from-chart-store",
8
+ JOB = "create-job"
9
+ }
10
+ export type CreateActionMenuProps = ActionMenuProps<CreateActionMenuItems>;
@@ -0,0 +1,2 @@
1
+ import { CreateActionMenuProps } from './types';
2
+ export declare const getCreateActionMenuOptions: (createCustomAppURL: string) => CreateActionMenuProps["options"];
@@ -0,0 +1,2 @@
1
+ import { HelpButtonProps } from './types';
2
+ export declare const HelpButton: ({ serverInfo, fetchingServerInfo, onClick }: HelpButtonProps) => JSX.Element;
@@ -1,4 +1,5 @@
1
- import { HelpOptionType } from './types';
2
- export declare const EnterpriseHelpOptions: HelpOptionType[];
3
- export declare const OSSHelpOptions: HelpOptionType[];
4
- export declare const TrialHelpOptions: HelpOptionType[];
1
+ import { HelpButtonActionMenuProps } from './types';
2
+ export declare const COMMON_HELP_ACTION_MENU_ITEMS: HelpButtonActionMenuProps['options'][number]['items'];
3
+ export declare const OSS_HELP_ACTION_MENU_ITEMS: HelpButtonActionMenuProps['options'][number]['items'];
4
+ export declare const ENTERPRISE_TRIAL_HELP_ACTION_MENU_ITEMS: HelpButtonActionMenuProps['options'][number]['items'];
5
+ export declare const ENTERPRISE_HELP_ACTION_MENU_ITEMS: HelpButtonActionMenuProps['options'][number]['items'];
@@ -1,5 +1,6 @@
1
1
  import { ModuleStatus } from '../../types';
2
2
  import { ResponseType, TippyCustomizedProps } from '../../../Common';
3
+ import { ActionMenuProps } from '../ActionMenu';
3
4
  export declare enum InstallationType {
4
5
  OSS_KUBECTL = "oss_kubectl",
5
6
  OSS_HELM = "oss_helm",
@@ -33,16 +34,21 @@ export interface ServerInfo {
33
34
  export interface ServerInfoResponse extends ResponseType {
34
35
  result?: ServerInfo;
35
36
  }
36
- export interface HelpNavType {
37
- className: string;
38
- setShowHelpCard: React.Dispatch<React.SetStateAction<boolean>>;
37
+ export interface HelpButtonProps {
39
38
  serverInfo: ServerInfo;
40
39
  fetchingServerInfo: boolean;
41
- setGettingStartedClicked: (isClicked: boolean) => void;
42
- showHelpCard: boolean;
40
+ onClick: () => void;
43
41
  }
44
- export interface HelpOptionType {
45
- name: string;
46
- link: string;
47
- icon: React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
42
+ export declare enum HelpMenuItems {
43
+ GETTING_STARTED = "getting-started",
44
+ VIEW_DOCUMENTATION = "view-documentation",
45
+ JOIN_DISCORD_COMMUNITY = "join-discord-community",
46
+ ABOUT_DEVTRON = "about-devtron",
47
+ REQUEST_SUPPORT = "request-support",
48
+ OPEN_NEW_TICKET = "open-new-ticket",
49
+ VIEW_ALL_TICKETS = "view-all-tickets",
50
+ GIVE_FEEDBACK = "give-feedback",
51
+ CHAT_WITH_SUPPORT = "chat-with-support",
52
+ RAISE_ISSUE_REQUEST = "raise-issue-request"
48
53
  }
54
+ export type HelpButtonActionMenuProps = ActionMenuProps<HelpMenuItems>;
@@ -1,6 +1,10 @@
1
1
  import { DevtronLicenseInfo } from '../License';
2
+ import { HelpButtonActionMenuProps } from './types';
2
3
  export declare const getDateInMilliseconds: (days: any) => number;
3
4
  export declare const handlePostHogEventUpdate: (eventName: string) => Promise<void>;
4
5
  export declare const setActionWithExpiry: (key: string, days: number) => void;
5
6
  export declare const getIsShowingLicenseData: (licenseData: DevtronLicenseInfo) => boolean;
6
- export declare const getHelpOptions: (isEnterprise: boolean, isTrial: boolean) => import('./types').HelpOptionType[];
7
+ export declare const getHelpActionMenuOptions: ({ isEnterprise, isTrial, }: {
8
+ isEnterprise: boolean;
9
+ isTrial: boolean;
10
+ }) => HelpButtonActionMenuProps["options"];
@@ -27,6 +27,7 @@ export declare const iconMap: {
27
27
  'ic-caret-right': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
28
28
  'ic-cd': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
29
29
  'ic-chat-circle-dots': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
30
+ 'ic-chat-circle-online': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
30
31
  'ic-check': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
31
32
  'ic-checks': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
32
33
  'ic-ci-linked': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -51,8 +52,10 @@ export declare const iconMap: {
51
52
  'ic-devtron-header-logo': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
52
53
  'ic-devtron': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
53
54
  'ic-disconnect': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
55
+ 'ic-discord-fill': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
54
56
  'ic-dockerhub': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
55
57
  'ic-ecr': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
58
+ 'ic-edit': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
56
59
  'ic-enterprise-feat': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
57
60
  'ic-enterprise-tag': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
58
61
  'ic-env': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -60,7 +63,10 @@ export declare const iconMap: {
60
63
  'ic-expand-right-sm': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
61
64
  'ic-expand-sm': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
62
65
  'ic-failure': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
66
+ 'ic-file-edit': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
63
67
  'ic-file-key': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
68
+ 'ic-file': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
69
+ 'ic-files': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
64
70
  'ic-folder-user': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
65
71
  'ic-gear': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
66
72
  'ic-gift-gradient': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -99,6 +105,7 @@ export declare const iconMap: {
99
105
  'ic-medium-delete': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
100
106
  'ic-medium-paintbucket': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
101
107
  'ic-megaphone-left': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
108
+ 'ic-megaphone-right': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
102
109
  'ic-memory': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
103
110
  'ic-microsoft': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
104
111
  'ic-minikube': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -113,6 +120,7 @@ export declare const iconMap: {
113
120
  'ic-openshift': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
114
121
  'ic-out-of-sync': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
115
122
  'ic-paper-plane-color': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
123
+ 'ic-path': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
116
124
  'ic-pencil': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
117
125
  'ic-quay': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
118
126
  'ic-quote': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -1,2 +1,2 @@
1
1
  import { IconBaseProps } from './types';
2
- export declare const IconBase: ({ name, iconMap, size, tooltipProps, color }: IconBaseProps) => JSX.Element;
2
+ export declare const IconBase: ({ name, iconMap, size, tooltipProps, color, dataTestId, rotateBy, fillSpace, }: IconBaseProps) => JSX.Element;
@@ -3,22 +3,44 @@ import { TooltipProps } from '@Common/Tooltip/types';
3
3
  import { IconBaseColorType, IconBaseSizeType } from '../../index';
4
4
  type IconMap = Record<string, FC<SVGProps<SVGSVGElement>>>;
5
5
  export interface IconBaseProps {
6
- /** The name of the icon to render. */
6
+ /**
7
+ * The name of the icon to render.
8
+ */
7
9
  name: keyof IconMap;
8
- /** The map containing all available icons. */
10
+ /**
11
+ * A map containing all available icons.
12
+ */
9
13
  iconMap: IconMap;
10
14
  /**
11
- * The size of the icon in pixels.
15
+ * The size of the icon in pixels. If not provided, the default size is `16px`.
16
+ *
12
17
  * @default 16
13
18
  */
14
19
  size?: IconBaseSizeType | null;
15
- /** Props to configure the tooltip when hovering over the icon. */
20
+ /**
21
+ * Configuration for the tooltip displayed when hovering over the icon.
22
+ */
16
23
  tooltipProps?: TooltipProps;
17
24
  /**
18
- * The color of the icon (color tokens). \
19
- * If `null`, the default color present in icon is used.
20
- * @example `'B500'`, `'N200'`, `'G50'`, `'R700'`
25
+ * The color of the icon, specified using predefined color tokens.
26
+ * If set to `null`, the icon's default color will be used.
27
+ *
28
+ * @example 'B500', 'N200', 'G50', 'R700'
21
29
  */
22
30
  color: IconBaseColorType;
31
+ /**
32
+ * A unique identifier for testing purposes, typically used in test automation.
33
+ */
34
+ dataTestId?: string;
35
+ /**
36
+ * Rotates the icon by the specified number of degrees.
37
+ *
38
+ * @example 90, 180, 270
39
+ */
40
+ rotateBy?: number;
41
+ /**
42
+ * If true, the icon will expand to fill the available space of its container.
43
+ */
44
+ fillSpace?: boolean;
23
45
  }
24
46
  export {};
@@ -0,0 +1,8 @@
1
+ import { PopoverProps } from './types';
2
+ /**
3
+ * Popover Component \
4
+ * This component serves as a base for creating popovers. It is not intended to be used directly.
5
+ * @note Use this component in conjunction with the `usePopover` hook to create a custom popover component. \
6
+ * For example, see the `ActionMenu` component for reference.
7
+ */
8
+ export declare const Popover: ({ open, popoverProps, overlayProps, triggerProps, buttonProps, triggerElement, children, }: PopoverProps) => JSX.Element;
@@ -0,0 +1,3 @@
1
+ export * from './Popover.component';
2
+ export * from './types';
3
+ export * from './usePopover.hook';
@@ -0,0 +1,105 @@
1
+ import { DetailedHTMLProps, KeyboardEvent, MutableRefObject, ReactElement } from 'react';
2
+ import { HTMLMotionProps } from 'framer-motion';
3
+ import { ButtonProps } from '../Button';
4
+ export interface UsePopoverProps {
5
+ /**
6
+ * A unique identifier for the popover.
7
+ */
8
+ id: string;
9
+ /**
10
+ * The width of the popover.
11
+ * Can be a number representing the width in pixels or the string `'auto'` for automatic sizing (up to 250px).
12
+ * @default 'auto'
13
+ */
14
+ width?: number | 'auto';
15
+ /**
16
+ * The position of the popover relative to its trigger element.
17
+ * Possible values are:
18
+ * - `'bottom'`: Positions the popover below the trigger.
19
+ * - `'top'`: Positions the popover above the trigger.
20
+ * - `'left'`: Positions the popover to the left of the trigger.
21
+ * - `'right'`: Positions the popover to the right of the trigger.
22
+ * @default 'bottom'
23
+ */
24
+ position?: 'bottom' | 'top' | 'left' | 'right';
25
+ /**
26
+ * The alignment of the popover relative to its trigger element.
27
+ * Possible values are:
28
+ * - `'start'`: Aligns the popover to the start of the trigger.
29
+ * - `'middle'`: Aligns the popover to the center of the trigger.
30
+ * - `'end'`: Aligns the popover to the end of the trigger.
31
+ * @default 'start'
32
+ */
33
+ alignment?: 'start' | 'middle' | 'end';
34
+ /**
35
+ * Callback function triggered when the popover is opened or closed.
36
+ * @param open - A boolean indicating whether the popover is open.
37
+ */
38
+ onOpen?: (open: boolean) => void;
39
+ /**
40
+ * Callback function triggered when a key is pressed while the trigger element is focused.
41
+ * @param e - The keyboard event.
42
+ * @param openState - A boolean indicating whether the popover is currently open.
43
+ * @param closePopover - A function to close the popover.
44
+ */
45
+ onTriggerKeyDown?: (e: KeyboardEvent, openState: boolean, closePopover: () => void) => void;
46
+ /**
47
+ * Callback function triggered when a key is pressed while the popover is focused.
48
+ * @param e - The keyboard event.
49
+ * @param openState - A boolean indicating whether the popover is currently open.
50
+ * @param closePopover - A function to close the popover.
51
+ */
52
+ onPopoverKeyDown?: (e: KeyboardEvent, openState: boolean, closePopover: () => void) => void;
53
+ }
54
+ /**
55
+ * Represents the return type of the `usePopover` hook, providing properties and methods
56
+ * to manage and interact with a popover component.
57
+ */
58
+ export interface UsePopoverReturnType {
59
+ /**
60
+ * Indicates whether the popover is currently open.
61
+ */
62
+ open: boolean;
63
+ /**
64
+ * Props to be spread onto the trigger element that opens the popover.
65
+ * These props include standard HTML attributes for a `div` element.
66
+ */
67
+ triggerProps: DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
68
+ /**
69
+ * Props to be spread onto the overlay element of the popover.
70
+ * These props include standard HTML attributes for a `div` element.
71
+ */
72
+ overlayProps: DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
73
+ /**
74
+ * Props to be spread onto the popover element itself.
75
+ * Includes motion-related props for animations and a `ref` to the popover's `div` element.
76
+ */
77
+ popoverProps: HTMLMotionProps<'div'> & {
78
+ ref: MutableRefObject<HTMLDivElement>;
79
+ };
80
+ /**
81
+ * A mutable reference to the scrollable element inside the popover. \
82
+ * This reference should be assigned to the element that is scrollable.
83
+ */
84
+ scrollableRef: MutableRefObject<HTMLElement>;
85
+ /**
86
+ * A function to close the popover.
87
+ */
88
+ closePopover: () => void;
89
+ }
90
+ export type PopoverProps = Pick<UsePopoverReturnType, 'open' | 'overlayProps' | 'popoverProps' | 'triggerProps'> & {
91
+ /**
92
+ * Popover contents.
93
+ * This can be any React element or JSX to render inside the popover.
94
+ */
95
+ children: ReactElement;
96
+ /**
97
+ * Properties for the button to which the Popover is attached.
98
+ */
99
+ buttonProps: ButtonProps | null;
100
+ /**
101
+ * The React element to which the Popover is attached.
102
+ * @note only use when `triggerElement` is not `Button` component otherwise use `buttonProps`.
103
+ */
104
+ triggerElement: ReactElement | null;
105
+ };
@@ -0,0 +1,2 @@
1
+ import { UsePopoverProps, UsePopoverReturnType } from './types';
2
+ export declare const usePopover: ({ id, position, alignment, width, onOpen, onPopoverKeyDown, onTriggerKeyDown, }: UsePopoverProps) => UsePopoverReturnType;
@@ -0,0 +1,92 @@
1
+ import { HTMLMotionProps } from 'framer-motion';
2
+ import { UsePopoverProps } from './types';
3
+ export declare const getPopoverAlignmentStyle: ({ position, alignment }: Pick<UsePopoverProps, "position" | "alignment">) => {
4
+ right: number;
5
+ left?: undefined;
6
+ bottom?: undefined;
7
+ top?: undefined;
8
+ } | {
9
+ left: string;
10
+ right?: undefined;
11
+ bottom?: undefined;
12
+ top?: undefined;
13
+ } | {
14
+ left: number;
15
+ right?: undefined;
16
+ bottom?: undefined;
17
+ top?: undefined;
18
+ } | {
19
+ bottom: number;
20
+ right?: undefined;
21
+ left?: undefined;
22
+ top?: undefined;
23
+ } | {
24
+ top: string;
25
+ right?: undefined;
26
+ left?: undefined;
27
+ bottom?: undefined;
28
+ } | {
29
+ top: number;
30
+ right?: undefined;
31
+ left?: undefined;
32
+ bottom?: undefined;
33
+ };
34
+ export declare const getPopoverPositionStyle: ({ position }: Pick<UsePopoverProps, "position">) => {
35
+ bottom: string;
36
+ marginBottom: number;
37
+ right?: undefined;
38
+ marginRight?: undefined;
39
+ left?: undefined;
40
+ marginLeft?: undefined;
41
+ top?: undefined;
42
+ marginTop?: undefined;
43
+ } | {
44
+ right: string;
45
+ marginRight: number;
46
+ bottom?: undefined;
47
+ marginBottom?: undefined;
48
+ left?: undefined;
49
+ marginLeft?: undefined;
50
+ top?: undefined;
51
+ marginTop?: undefined;
52
+ } | {
53
+ left: string;
54
+ marginLeft: number;
55
+ bottom?: undefined;
56
+ marginBottom?: undefined;
57
+ right?: undefined;
58
+ marginRight?: undefined;
59
+ top?: undefined;
60
+ marginTop?: undefined;
61
+ } | {
62
+ top: string;
63
+ marginTop: number;
64
+ bottom?: undefined;
65
+ marginBottom?: undefined;
66
+ right?: undefined;
67
+ marginRight?: undefined;
68
+ left?: undefined;
69
+ marginLeft?: undefined;
70
+ };
71
+ export declare const getPopoverFramerProps: ({ position, alignment }: Pick<UsePopoverProps, "position" | "alignment">) => {
72
+ initial: {
73
+ [x: string]: number;
74
+ opacity: number;
75
+ };
76
+ animate: {
77
+ [x: string]: number;
78
+ opacity: number;
79
+ };
80
+ exit: {
81
+ [x: string]: number;
82
+ opacity: number;
83
+ };
84
+ transformTemplate: HTMLMotionProps<"div">["transformTemplate"];
85
+ };
86
+ export declare const getPopoverActualPositionAlignment: ({ position, alignment, triggerRect, popoverRect, }: Pick<UsePopoverProps, "position" | "alignment"> & {
87
+ triggerRect: DOMRect;
88
+ popoverRect: DOMRect;
89
+ }) => {
90
+ fallbackPosition: "top" | "bottom" | "right" | "left";
91
+ fallbackAlignment: "start" | "middle" | "end";
92
+ };
@@ -8,6 +8,7 @@ export declare const SelectPickerControl: <OptionValue>(props: ControlProps<Sele
8
8
  export declare const SelectPickerInput: <OptionValue>(props: InputProps<SelectPickerOptionType<OptionValue>>) => JSX.Element;
9
9
  export declare const SelectPickerValueContainer: <OptionValue, IsMulti extends boolean>({ showSelectedOptionsCount, customSelectedOptionsCount, ...props }: ValueContainerProps<SelectPickerOptionType<OptionValue>> & Pick<SelectPickerProps<OptionValue, IsMulti>, "showSelectedOptionsCount" | "customSelectedOptionsCount">) => JSX.Element;
10
10
  export declare const SelectPickerOption: <OptionValue, IsMulti extends boolean>({ disableDescriptionEllipsis, ...props }: OptionProps<SelectPickerOptionType<OptionValue>> & Pick<SelectPickerProps<OptionValue, IsMulti>, "disableDescriptionEllipsis">) => JSX.Element;
11
+ export declare const SelectPickerMenuListFooter: ({ menuListFooterConfig, }: Required<Pick<SelectPickerProps, "menuListFooterConfig">>) => JSX.Element;
11
12
  export declare const SelectPickerMenuList: <OptionValue>(props: MenuListProps<SelectPickerOptionType<OptionValue>>) => JSX.Element;
12
13
  export declare const SelectPickerMultiValueLabel: <OptionValue, IsMulti extends boolean>({ getIsOptionValid, ...props }: MultiValueProps<SelectPickerOptionType<OptionValue>, true> & Pick<SelectPickerProps<OptionValue, IsMulti>["multiSelectProps"], "getIsOptionValid">) => JSX.Element;
13
14
  export declare const SelectPickerMultiValueRemove: (props: MultiValueRemoveProps) => JSX.Element;
@@ -40,6 +40,10 @@ type MenuListFooterConfigType = {
40
40
  buttonProps: {
41
41
  variant: ButtonVariantType.primary | ButtonVariantType.borderLess;
42
42
  } & Omit<ButtonProps<ButtonComponentType>, 'size' | 'fullWidth' | 'icon' | 'endIcon' | 'variant' | 'style'>;
43
+ } | {
44
+ type: 'customNode';
45
+ value: ReactElement;
46
+ buttonProps?: never;
43
47
  };
44
48
  declare module 'react-select/base' {
45
49
  interface Props<Option, IsMulti extends boolean, Group extends GroupBase<Option>> {
@@ -1,5 +1,5 @@
1
1
  import { TabGroupProps, TabProps } from './TabGroup.types';
2
- export declare const getTabIcon: ({ icon, showError, showWarning, className, size, active, }: Pick<TabProps, "showError" | "showWarning" | "icon" | "active"> & Pick<TabGroupProps, "size"> & {
2
+ export declare const getTabIcon: ({ icon, showError, showWarning, className, size, active, iconElement, }: Pick<TabProps, "showError" | "showWarning" | "icon" | "active" | "iconElement"> & Pick<TabGroupProps, "size"> & {
3
3
  className: string;
4
4
  }) => JSX.Element;
5
5
  export declare const getTabBadge: (badge: TabProps["badge"], className: string) => JSX.Element;