diff --git a/app/client/packages/design-system/ads/src/Icon/Icon.provider.tsx b/app/client/packages/design-system/ads/src/Icon/Icon.provider.tsx index 16f6de3db0..1f6abfef5d 100644 --- a/app/client/packages/design-system/ads/src/Icon/Icon.provider.tsx +++ b/app/client/packages/design-system/ads/src/Icon/Icon.provider.tsx @@ -204,6 +204,9 @@ const RightArrowIcon2 = importRemixIcon( const RocketIcon = importRemixIcon( async () => import("remixicon-react/RocketLineIcon"), ); +const RobotIcon = importRemixIcon( + async () => import("remixicon-react/RobotLineIcon"), +); const Save2LineIcon = importRemixIcon( async () => import("remixicon-react/Save2LineIcon"), ); @@ -1130,6 +1133,28 @@ const StateInspectorIcon = importSvg( async () => import("../__assets__/icons/ads/state-inspector.svg"), ); +const BoxIcon = importSvg( + async () => import("../__assets__/icons/ads/box.svg"), +); +const ConfluenceIcon = importSvg( + async () => import("../__assets__/icons/ads/confluence.svg"), +); +const DropboxIcon = importSvg( + async () => import("../__assets__/icons/ads/dropbox.svg"), +); +const FreshdeskIcon = importSvg( + async () => import("../__assets__/icons/ads/freshdesk.svg"), +); +const IntercomIcon = importSvg( + async () => import("../__assets__/icons/ads/intercom.svg"), +); +const OnedriveIcon = importSvg( + async () => import("../__assets__/icons/ads/onedrive.svg"), +); +const SharepointIcon = importSvg( + async () => import("../__assets__/icons/ads/sharepoint.svg"), +); + const MdFileIcon = importSvg( async () => import("../__assets__/icons/ads/md-file.svg"), ); @@ -1161,6 +1186,9 @@ const TsvFileIcon = importSvg( const XlsFileIcon = importSvg( async () => import("../__assets__/icons/ads/xls-file.svg"), ); +const Robot2LineIcon = importSvg( + async () => import("../__assets__/icons/ads/robot-2-line.svg"), +); import PlayIconPNG from "../__assets__/icons/control/play-icon.png"; @@ -1529,6 +1557,8 @@ const ICON_LOOKUP = { reaction: Reaction, refresh: RefreshLineIcon, rocket: RocketIcon, + robot: RobotIcon, + "robot-2": Robot2LineIcon, save: Save2LineIcon, search: SearchIcon, setting: SettingIcon, @@ -1569,6 +1599,13 @@ const ICON_LOOKUP = { "google-drive": GoogleDriveIcon, salesforce: SalesforceIcon, "state-inspector": StateInspectorIcon, + box: BoxIcon, + confluence: ConfluenceIcon, + dropbox: DropboxIcon, + freshdesk: FreshdeskIcon, + intercom: IntercomIcon, + onedrive: OnedriveIcon, + sharepoint: SharepointIcon, }; export const IconCollection = Object.keys(ICON_LOOKUP); diff --git a/app/client/packages/design-system/ads/src/__assets__/icons/ads/box.svg b/app/client/packages/design-system/ads/src/__assets__/icons/ads/box.svg new file mode 100644 index 0000000000..312053dd4f --- /dev/null +++ b/app/client/packages/design-system/ads/src/__assets__/icons/ads/box.svg @@ -0,0 +1,3 @@ + + + diff --git a/app/client/packages/design-system/ads/src/__assets__/icons/ads/confluence.svg b/app/client/packages/design-system/ads/src/__assets__/icons/ads/confluence.svg new file mode 100644 index 0000000000..b19669421e --- /dev/null +++ b/app/client/packages/design-system/ads/src/__assets__/icons/ads/confluence.svg @@ -0,0 +1,3 @@ + + + diff --git a/app/client/packages/design-system/ads/src/__assets__/icons/ads/dropbox.svg b/app/client/packages/design-system/ads/src/__assets__/icons/ads/dropbox.svg new file mode 100644 index 0000000000..e7324eb803 --- /dev/null +++ b/app/client/packages/design-system/ads/src/__assets__/icons/ads/dropbox.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/app/client/packages/design-system/ads/src/__assets__/icons/ads/freshdesk.svg b/app/client/packages/design-system/ads/src/__assets__/icons/ads/freshdesk.svg new file mode 100644 index 0000000000..2b8f656aa6 --- /dev/null +++ b/app/client/packages/design-system/ads/src/__assets__/icons/ads/freshdesk.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/app/client/packages/design-system/ads/src/__assets__/icons/ads/intercom.svg b/app/client/packages/design-system/ads/src/__assets__/icons/ads/intercom.svg new file mode 100644 index 0000000000..4bd3449f9e --- /dev/null +++ b/app/client/packages/design-system/ads/src/__assets__/icons/ads/intercom.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/app/client/packages/design-system/ads/src/__assets__/icons/ads/onedrive.svg b/app/client/packages/design-system/ads/src/__assets__/icons/ads/onedrive.svg new file mode 100644 index 0000000000..b55f5f93f5 --- /dev/null +++ b/app/client/packages/design-system/ads/src/__assets__/icons/ads/onedrive.svg @@ -0,0 +1,3 @@ + + + diff --git a/app/client/packages/design-system/ads/src/__assets__/icons/ads/robot-2-line.svg b/app/client/packages/design-system/ads/src/__assets__/icons/ads/robot-2-line.svg new file mode 100644 index 0000000000..b7c224276f --- /dev/null +++ b/app/client/packages/design-system/ads/src/__assets__/icons/ads/robot-2-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/client/packages/design-system/ads/src/__assets__/icons/ads/sharepoint.svg b/app/client/packages/design-system/ads/src/__assets__/icons/ads/sharepoint.svg new file mode 100644 index 0000000000..ae1fa3b15b --- /dev/null +++ b/app/client/packages/design-system/ads/src/__assets__/icons/ads/sharepoint.svg @@ -0,0 +1,3 @@ + + + diff --git a/app/client/src/ce/constants/messages.ts b/app/client/src/ce/constants/messages.ts index 606505b1cf..09033601d2 100644 --- a/app/client/src/ce/constants/messages.ts +++ b/app/client/src/ce/constants/messages.ts @@ -210,7 +210,7 @@ export const PARTNER_PROGRAM_CALLOUT_LINK = () => export const NEW_APPLICATION = () => `New application`; export const APPLICATIONS = () => `Applications`; export const FIXED_APPLICATIONS = () => `Classic Applications`; -export const ANVIL_APPLICATIONS = () => `New Applications`; +export const AI_AGENTS_APPLICATIONS = () => `AI Agents`; export const USER_PROFILE_PICTURE_UPLOAD_FAILED = () => "Unable to upload display picture."; @@ -272,8 +272,6 @@ export const APPLICATION_CARD_LIST_ZERO_STATE = () => `There are no applications in this workspace.`; export const NEW_APPLICATION_CARD_LIST_ZERO_STATE = () => `There are no new applications in this workspace.`; -export const CLASSIC_APPLICATION_CARD_LIST_ZERO_STATE = () => - `There are no classic applications in this workspace.`; export const TRY_GUIDED_TOUR = () => `Try guided tour`; export const JOIN_OUR_DISCORD = () => `Join our discord`; export const WHATS_NEW = () => `What's new?`; diff --git a/app/client/src/ce/pages/Applications/index.tsx b/app/client/src/ce/pages/Applications/index.tsx index f04d3e39e3..9604a0b79e 100644 --- a/app/client/src/ce/pages/Applications/index.tsx +++ b/app/client/src/ce/pages/Applications/index.tsx @@ -8,14 +8,11 @@ import { } from "ee/actions/workspaceActions"; import type { UpdateApplicationPayload } from "ee/api/ApplicationApi"; import { - ANVIL_APPLICATIONS, + AI_AGENTS_APPLICATIONS, APPLICATIONS, - CLASSIC_APPLICATION_CARD_LIST_ZERO_STATE, CREATE_A_NEW_WORKSPACE, createMessage, - FIXED_APPLICATIONS, INVITE_USERS_PLACEHOLDER, - NEW_APPLICATION_CARD_LIST_ZERO_STATE, NO_APPS_FOUND, NO_WORKSPACE_HEADING, WORKSPACES_HEADING, @@ -282,12 +279,9 @@ const TitleTag = styled(Tag)` max-width: fit-content; `; -// A static component that is a tag signifying Anvil applications -// This will be passed down to the ApplicationCardsList component -// in the titleTag prop. -const AnvilTitleTag = ( +const BetaTag = ( {}}> - Anvil α + Beta ); @@ -771,7 +765,7 @@ export function ApplicationsSection(props: any) { ) { createNewApplication( getNextEntityName( - isAnvilEnabled ? "AI app " : "Untitled application ", + "Untitled application ", // TODO: Fix this the next time the file is edited // eslint-disable-next-line @typescript-eslint/no-explicit-any applications.map((el: any) => el.name), @@ -902,39 +896,10 @@ export function ApplicationsSection(props: any) { ) : ( <> - {isAnvilEnabled && ( // Anvil Applications list - - )} + {isAnvilEnabled && + anvilApplications.length > 0 && ( // AI Agents list + + )} - filterWithAllowPageImport ? !!template.allowPageImport : true, - ); + const templates = useSelector(getSearchedTemplateList) + .filter((template) => + filterWithAllowPageImport ? !!template.allowPageImport : true, + ) + // We are using AI Agent template for creating ai agent app, + // so we are not showing it in the templates list. + // TODO: Once we have a new entity for ai agent, we need to remove this filter. + .filter((template) => template.title !== "AI Agent"); if (isLoading) { return ;