From 4639152e6fd3e7f578604632bac8499abf41ca88 Mon Sep 17 00:00:00 2001 From: Arun Jain Date: Fri, 9 Jan 2026 17:31:04 +0530 Subject: [PATCH 1/4] feat: add icons and illustrations --- src/Assets/IconV2/ic-curved-arrow.svg | 3 +++ src/Assets/IconV2/ic-nav-cursor.svg | 10 ++++++++++ src/Assets/Illustration/cmd-bar-visual.webp | Bin 0 -> 20538 bytes .../GenericModal/GenericModal.component.tsx | 7 ++++++- src/Shared/Components/GenericModal/types.ts | 2 +- src/Shared/Components/Icon/Icon.tsx | 4 ++++ .../Components/Illustration/Illustration.tsx | 2 ++ 7 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 src/Assets/IconV2/ic-curved-arrow.svg create mode 100644 src/Assets/IconV2/ic-nav-cursor.svg create mode 100644 src/Assets/Illustration/cmd-bar-visual.webp diff --git a/src/Assets/IconV2/ic-curved-arrow.svg b/src/Assets/IconV2/ic-curved-arrow.svg new file mode 100644 index 000000000..197a2c907 --- /dev/null +++ b/src/Assets/IconV2/ic-curved-arrow.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/Assets/IconV2/ic-nav-cursor.svg b/src/Assets/IconV2/ic-nav-cursor.svg new file mode 100644 index 000000000..295732275 --- /dev/null +++ b/src/Assets/IconV2/ic-nav-cursor.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/Assets/Illustration/cmd-bar-visual.webp b/src/Assets/Illustration/cmd-bar-visual.webp new file mode 100644 index 0000000000000000000000000000000000000000..2ca70968ffb35cd341b641f7218f51609f6391ad GIT binary patch literal 20538 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 => ( {open && ( - + > { +export interface GenericModalProps extends Partial> { /** Unique identifier for the modal */ name: string /** Controls whether the modal is visible or hidden */ diff --git a/src/Shared/Components/Icon/Icon.tsx b/src/Shared/Components/Icon/Icon.tsx index f9517d50e..17bf08959 100644 --- a/src/Shared/Components/Icon/Icon.tsx +++ b/src/Shared/Components/Icon/Icon.tsx @@ -96,6 +96,7 @@ import { ReactComponent as ICCostVisibility } from '@IconsV2/ic-cost-visibility. import { ReactComponent as ICCpu } from '@IconsV2/ic-cpu.svg' import { ReactComponent as ICCrown } from '@IconsV2/ic-crown.svg' import { ReactComponent as ICCube } from '@IconsV2/ic-cube.svg' +import { ReactComponent as ICCurvedArrow } from '@IconsV2/ic-curved-arrow.svg' import { ReactComponent as ICDatabaseBackup } from '@IconsV2/ic-database-backup.svg' import { ReactComponent as ICDelete } from '@IconsV2/ic-delete.svg' import { ReactComponent as ICDeleteDots } from '@IconsV2/ic-delete-dots.svg' @@ -217,6 +218,7 @@ import { ReactComponent as ICMobile } from '@IconsV2/ic-mobile.svg' import { ReactComponent as ICMonitoring } from '@IconsV2/ic-monitoring.svg' import { ReactComponent as ICMoreVertical } from '@IconsV2/ic-more-vertical.svg' import { ReactComponent as ICNamespace } from '@IconsV2/ic-namespace.svg' +import { ReactComponent as ICNavCursor } from '@IconsV2/ic-nav-cursor.svg' import { ReactComponent as ICNew } from '@IconsV2/ic-new.svg' import { ReactComponent as ICNodeScript } from '@IconsV2/ic-node-script.svg' import { ReactComponent as ICOidc } from '@IconsV2/ic-oidc.svg' @@ -412,6 +414,7 @@ export const iconMap = { 'ic-cpu': ICCpu, 'ic-crown': ICCrown, 'ic-cube': ICCube, + 'ic-curved-arrow': ICCurvedArrow, 'ic-database-backup': ICDatabaseBackup, 'ic-delete-dots': ICDeleteDots, 'ic-delete-lightning': ICDeleteLightning, @@ -533,6 +536,7 @@ export const iconMap = { 'ic-monitoring': ICMonitoring, 'ic-more-vertical': ICMoreVertical, 'ic-namespace': ICNamespace, + 'ic-nav-cursor': ICNavCursor, 'ic-new': ICNew, 'ic-node-script': ICNodeScript, 'ic-oidc': ICOidc, diff --git a/src/Shared/Components/Illustration/Illustration.tsx b/src/Shared/Components/Illustration/Illustration.tsx index aa6c8041f..409da2299 100644 --- a/src/Shared/Components/Illustration/Illustration.tsx +++ b/src/Shared/Components/Illustration/Illustration.tsx @@ -1,5 +1,6 @@ // NOTE: This file is auto-generated. Do not edit directly. Run the script `npm run generate-illustration` to update. +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 ImgCelebration } from '@Illustrations/img-celebration.svg' @@ -31,6 +32,7 @@ export const illustrationMap = { 'img-no-backup-location': ImgNoBackupLocation, 'img-no-restores': ImgNoRestores, 'img-page-not-found': ImgPageNotFound, + 'cmd-bar-visual': CmdBarVisual, 'create-backup-schedule': CreateBackupSchedule, 'create-backup-snapshot': CreateBackupSnapshot, 'img-code': ImgCode, From 30bf7b167632c09bd62b931629ca648b6d71fa19 Mon Sep 17 00:00:00 2001 From: Arun Jain Date: Fri, 9 Jan 2026 17:32:02 +0530 Subject: [PATCH 2/4] chore: version bump --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index bdf6b1da9..ca1a62b2a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@devtron-labs/devtron-fe-common-lib", - "version": "1.22.4", + "version": "1.22.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@devtron-labs/devtron-fe-common-lib", - "version": "1.22.4", + "version": "1.22.5", "hasInstallScript": true, "license": "ISC", "dependencies": { diff --git a/package.json b/package.json index fac8b2739..226c955a6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@devtron-labs/devtron-fe-common-lib", - "version": "1.22.4", + "version": "1.22.5", "description": "Supporting common component library", "type": "module", "main": "dist/index.js", From ff7db037ea4b5ae6538158cd3036b706ab9f5d09 Mon Sep 17 00:00:00 2001 From: Arun Jain Date: Mon, 12 Jan 2026 12:33:32 +0530 Subject: [PATCH 3/4] feat: enhance GenericModal with border variant and alignment options; add escape key handling for focus trap --- src/Shared/Components/DTFocusTrap/DTFocusTrap.tsx | 13 +++++++++++++ .../GenericModal/GenericModal.component.tsx | 6 ++++-- src/Shared/Components/GenericModal/constants.ts | 8 +++++++- src/Shared/Components/GenericModal/types.ts | 4 ++++ 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/Shared/Components/DTFocusTrap/DTFocusTrap.tsx b/src/Shared/Components/DTFocusTrap/DTFocusTrap.tsx index 65bc9b4d1..01d68273c 100644 --- a/src/Shared/Components/DTFocusTrap/DTFocusTrap.tsx +++ b/src/Shared/Components/DTFocusTrap/DTFocusTrap.tsx @@ -38,11 +38,24 @@ const DTFocusTrap = ({ [onEscape, deactivateFocusOnEscape], ) + // Focus escape key bind when focus trap is avoided + const handleEscapeKeyBind = (e: KeyboardEvent) => { + if (e.key === 'Escape') { + onEscape(e) + } + } + useEffect(() => { + if (avoidFocusTrap) { + document.addEventListener('keydown', handleEscapeKeyBind) + } preventBodyScroll(true) return () => { preventBodyScroll(false) + if (avoidFocusTrap) { + document.removeEventListener('keydown', handleEscapeKeyBind) + } } }, []) diff --git a/src/Shared/Components/GenericModal/GenericModal.component.tsx b/src/Shared/Components/GenericModal/GenericModal.component.tsx index 9c31af07f..2f52309f5 100644 --- a/src/Shared/Components/GenericModal/GenericModal.component.tsx +++ b/src/Shared/Components/GenericModal/GenericModal.component.tsx @@ -21,7 +21,7 @@ import { noop, stopPropagation } from '@Common/Helper' import { Backdrop, Button, ButtonStyleType, ButtonVariantType, Icon } from '@Shared/Components' import { ComponentSizeType } from '@Shared/constants' -import { MODAL_WIDTH_TO_CLASS_NAME_MAP } from './constants' +import { BORDER_VARIANT_TO_CLASS_NAME_MAP, MODAL_WIDTH_TO_CLASS_NAME_MAP } from './constants' import { GenericModalProvider, useGenericModalContext } from './GenericModal.context' import { GenericModalFooterProps, GenericModalHeaderProps, GenericModalProps } from './types' @@ -88,6 +88,8 @@ const GenericModal = ({ closeOnBackdropClick = false, children, avoidFocusTrap = false, + borderVariant = 'secondary', + alignCenter = false, }: PropsWithChildren) => ( {open && ( @@ -98,7 +100,7 @@ const GenericModal = ({ avoidFocusTrap={avoidFocusTrap} > = { 450: 'w-450', @@ -22,3 +22,9 @@ export const MODAL_WIDTH_TO_CLASS_NAME_MAP: Record = { + secondary: 'border__secondary', + none: '', + 'secondary-translucent': 'border__secondary-translucent', +} diff --git a/src/Shared/Components/GenericModal/types.ts b/src/Shared/Components/GenericModal/types.ts index 87e26df67..a71884e9e 100644 --- a/src/Shared/Components/GenericModal/types.ts +++ b/src/Shared/Components/GenericModal/types.ts @@ -17,6 +17,8 @@ import { BackdropProps } from '../Backdrop' import { ButtonProps } from '../Button' +export type BorderVariantType = 'secondary' | 'none' | 'secondary-translucent' + export interface GenericModalProps extends Partial> { /** Unique identifier for the modal */ name: string @@ -35,6 +37,8 @@ export interface GenericModalProps extends Partial {} From 2ff76f5610de99960c2366c7cde79bb7984a3eda Mon Sep 17 00:00:00 2001 From: Arun Jain Date: Mon, 12 Jan 2026 12:42:44 +0530 Subject: [PATCH 4/4] feat: update ic-curved-arrow.svg path fill color to use CSS variable --- src/Assets/IconV2/ic-curved-arrow.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Assets/IconV2/ic-curved-arrow.svg b/src/Assets/IconV2/ic-curved-arrow.svg index 197a2c907..04b4044dd 100644 --- a/src/Assets/IconV2/ic-curved-arrow.svg +++ b/src/Assets/IconV2/ic-curved-arrow.svg @@ -1,3 +1,3 @@ - + \ No newline at end of file