secondary: 'border__secondary',
none: '',
'secondary-translucent': 'border__secondary-translucent',
+ primary: 'border__primary',
}
diff --git a/src/Shared/Components/GenericModal/types.ts b/src/Shared/Components/GenericModal/types.ts
index a71884e9e..a54747d93 100644
--- a/src/Shared/Components/GenericModal/types.ts
+++ b/src/Shared/Components/GenericModal/types.ts
@@ -17,7 +17,7 @@
import { BackdropProps } from '../Backdrop'
import { ButtonProps } from '../Button'
-export type BorderVariantType = 'secondary' | 'none' | 'secondary-translucent'
+export type BorderVariantType = 'secondary' | 'none' | 'secondary-translucent' | 'primary'
export interface GenericModalProps extends Partial
> {
/** Unique identifier for the modal */
diff --git a/src/Shared/Components/Header/HelpButton.tsx b/src/Shared/Components/Header/HelpButton.tsx
index 7e745eb14..6287c1792 100644
--- a/src/Shared/Components/Header/HelpButton.tsx
+++ b/src/Shared/Components/Header/HelpButton.tsx
@@ -75,6 +75,7 @@ export const HelpButton = ({
setSidePanelConfig,
loginCount,
showGettingStartedCard,
+ setShowUpgradeToOSSPlusDialog,
} = useMainContext()
const { appTheme } = useTheme()
const isSecureConnection = useIsSecureConnection()
@@ -126,6 +127,9 @@ export const HelpButton = ({
case HelpMenuItems.VIEW_DOCUMENTATION:
handleViewDocumentationClick(item, e)
break
+ case HelpMenuItems.UPGRADE_TO_OSS_PLUS:
+ setShowUpgradeToOSSPlusDialog?.(true)
+ break
default:
}
}
diff --git a/src/Shared/Components/Header/constants.ts b/src/Shared/Components/Header/constants.ts
index bd3d3e2ae..7847ef083 100644
--- a/src/Shared/Components/Header/constants.ts
+++ b/src/Shared/Components/Header/constants.ts
@@ -77,6 +77,13 @@ export const OSS_HELP_ACTION_MENU_ITEMS: HelpButtonActionMenuProps['options'][nu
componentType: 'anchor',
href: RAISE_ISSUE,
},
+ {
+ id: HelpMenuItems.UPGRADE_TO_OSS_PLUS,
+ label: 'Upgrade to OSS Plus',
+ startIcon: { name: 'ic-arrow-up-circle' },
+ componentType: 'button',
+ description: 'Run Devtron OSS with Expert Support',
+ },
]
export const ENTERPRISE_TRIAL_HELP_ACTION_MENU_ITEMS: HelpButtonActionMenuProps['options'][number]['items'] = [
diff --git a/src/Shared/Components/Header/types.ts b/src/Shared/Components/Header/types.ts
index 4065c8a4e..6eab1c890 100644
--- a/src/Shared/Components/Header/types.ts
+++ b/src/Shared/Components/Header/types.ts
@@ -71,6 +71,7 @@ export enum HelpMenuItems {
GIVE_FEEDBACK = 'give-feedback',
CHAT_WITH_SUPPORT = 'chat-with-support',
RAISE_ISSUE_REQUEST = 'raise-issue-request',
+ UPGRADE_TO_OSS_PLUS = 'upgrade-to-oss-plus',
DEVTRON_GPT = 'devtron-gpt',
}
diff --git a/src/Shared/Components/Icon/Icon.tsx b/src/Shared/Components/Icon/Icon.tsx
index 67d39ff4f..23e0cbab1 100644
--- a/src/Shared/Components/Icon/Icon.tsx
+++ b/src/Shared/Components/Icon/Icon.tsx
@@ -18,6 +18,8 @@ import { ReactComponent as ICArrowClockwise } from '@IconsV2/ic-arrow-clockwise.
import { ReactComponent as ICArrowLineDown } from '@IconsV2/ic-arrow-line-down.svg'
import { ReactComponent as ICArrowRight } from '@IconsV2/ic-arrow-right.svg'
import { ReactComponent as ICArrowSquareOut } from '@IconsV2/ic-arrow-square-out.svg'
+import { ReactComponent as ICArrowUpCircle } from '@IconsV2/ic-arrow-up-circle.svg'
+import { ReactComponent as ICArrowUpCircleWithDot } from '@IconsV2/ic-arrow-up-circle-with-dot.svg'
import { ReactComponent as ICArrowsClockwise } from '@IconsV2/ic-arrows-clockwise.svg'
import { ReactComponent as ICArrowsLeftRight } from '@IconsV2/ic-arrows-left-right.svg'
import { ReactComponent as ICAsterisk } from '@IconsV2/ic-asterisk.svg'
@@ -215,6 +217,7 @@ import { ReactComponent as ICMagnifyingGlass } from '@IconsV2/ic-magnifying-glas
import { ReactComponent as ICMediumDelete } from '@IconsV2/ic-medium-delete.svg'
import { ReactComponent as ICMediumMegaphone } from '@IconsV2/ic-medium-megaphone.svg'
import { ReactComponent as ICMediumPaintbucket } from '@IconsV2/ic-medium-paintbucket.svg'
+import { ReactComponent as ICMediumUpgrade } from '@IconsV2/ic-medium-upgrade.svg'
import { ReactComponent as ICMegaphoneLeft } from '@IconsV2/ic-megaphone-left.svg'
import { ReactComponent as ICMegaphoneRight } from '@IconsV2/ic-megaphone-right.svg'
import { ReactComponent as ICMemory } from '@IconsV2/ic-memory.svg'
@@ -356,6 +359,8 @@ export const iconMap = {
'ic-arrow-line-down': ICArrowLineDown,
'ic-arrow-right': ICArrowRight,
'ic-arrow-square-out': ICArrowSquareOut,
+ 'ic-arrow-up-circle-with-dot': ICArrowUpCircleWithDot,
+ 'ic-arrow-up-circle': ICArrowUpCircle,
'ic-arrows-clockwise': ICArrowsClockwise,
'ic-arrows-left-right': ICArrowsLeftRight,
'ic-asterisk': ICAsterisk,
@@ -553,6 +558,7 @@ export const iconMap = {
'ic-medium-delete': ICMediumDelete,
'ic-medium-megaphone': ICMediumMegaphone,
'ic-medium-paintbucket': ICMediumPaintbucket,
+ 'ic-medium-upgrade': ICMediumUpgrade,
'ic-megaphone-left': ICMegaphoneLeft,
'ic-megaphone-right': ICMegaphoneRight,
'ic-memory': ICMemory,
diff --git a/src/Shared/Components/Illustration/Illustration.tsx b/src/Shared/Components/Illustration/Illustration.tsx
index 409da2299..a477b8d24 100644
--- a/src/Shared/Components/Illustration/Illustration.tsx
+++ b/src/Shared/Components/Illustration/Illustration.tsx
@@ -3,6 +3,7 @@
import CmdBarVisual from '@Illustrations/cmd-bar-visual.webp'
import CreateBackupSchedule from '@Illustrations/create-backup-schedule.webp'
import CreateBackupSnapshot from '@Illustrations/create-backup-snapshot.webp'
+import { ReactComponent as EmptyStateKey } from '@Illustrations/empty-state-key.svg'
import { ReactComponent as ImgCelebration } from '@Illustrations/img-celebration.svg'
import ImgCode from '@Illustrations/img-code.webp'
import ImgDevtronFreemium from '@Illustrations/img-devtron-freemium.webp'
@@ -23,6 +24,7 @@ import { IllustrationBase } from './IllustrationBase'
import { IllustrationBaseProps } from './types'
export const illustrationMap = {
+ 'empty-state-key': EmptyStateKey,
'img-celebration': ImgCelebration,
'img-folder-empty': ImgFolderEmpty,
'img-install-freemium-saas': ImgInstallFreemiumSaas,
diff --git a/src/Shared/Providers/MainContextProvider/types.ts b/src/Shared/Providers/MainContextProvider/types.ts
index cff7ce452..6f09df3c2 100644
--- a/src/Shared/Providers/MainContextProvider/types.ts
+++ b/src/Shared/Providers/MainContextProvider/types.ts
@@ -217,6 +217,8 @@ export type MainContext = CommonMainContextProps &
AIRecommendations?: FunctionComponent
featureAskDevtronExpert: EnvironmentDataValuesDTO['featureAskDevtronExpert']
AskDevtronButton?: FunctionComponent
+ showUpgradeToOSSPlusDialog: boolean
+ setShowUpgradeToOSSPlusDialog: (show: boolean) => void
}
| {
isLicenseDashboard: true
@@ -238,6 +240,8 @@ export type MainContext = CommonMainContextProps &
AIRecommendations?: null
featureAskDevtronExpert?: null
AskDevtronButton?: null
+ showUpgradeToOSSPlusDialog?: null
+ setShowUpgradeToOSSPlusDialog?: null
}
)
diff --git a/src/Shared/types.ts b/src/Shared/types.ts
index 1179c6df8..e96b02019 100644
--- a/src/Shared/types.ts
+++ b/src/Shared/types.ts
@@ -1215,6 +1215,7 @@ export type IconBaseSizeType =
| 42
| 44
| 48
+ | 56
| 64
| 72
| 80