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 ;