From 3a6301711e6aaa88890c769b671e62dab1db3bd7 Mon Sep 17 00:00:00 2001 From: anmolsinghbhatia Date: Tue, 1 Sep 2026 18:15:57 +0530 Subject: [PATCH] refactor: migrate admin icons to @makeplane/propel Replace confirmed icon symbols in apps/admin with their audited @makeplane/propel/icons targets, merging into the imports the six already-migrated files declared. Unresolved symbols (Menu, BrainCog) and the LucideIcon type stay on lucide-react. Lucide size props become explicit width/height. Loader keeps its LoaderIcon alias so the call site is unchanged. apps/admin already declared @makeplane/propel, so no dependency change was needed. --- apps/admin/app/(all)/(dashboard)/ai/form.tsx | 4 ++-- .../(dashboard)/authentication/github/form.tsx | 4 ++-- .../(dashboard)/authentication/google/form.tsx | 4 ++-- .../admin/app/(all)/(dashboard)/general/form.tsx | 4 ++-- .../app/(all)/(dashboard)/sidebar-dropdown.tsx | 8 ++++---- .../(all)/(dashboard)/sidebar-help-section.tsx | 16 +++++++++++----- .../app/(all)/(dashboard)/workspace/page.tsx | 2 +- apps/admin/app/(all)/(home)/auth-banner.tsx | 5 ++--- apps/admin/app/(all)/(home)/sign-in-form.tsx | 6 +++--- .../components/authentication/gitea-config.tsx | 4 ++-- .../components/authentication/github-config.tsx | 4 ++-- .../components/authentication/gitlab-config.tsx | 4 ++-- .../components/authentication/google-config.tsx | 4 ++-- apps/admin/components/common/banner.tsx | 6 +++--- .../admin/components/common/controller-input.tsx | 6 +++--- apps/admin/components/common/header/index.tsx | 7 ++++--- .../common/password-strength-indicator.tsx | 4 ++-- apps/admin/components/instance/setup-form.tsx | 10 +++++----- apps/admin/hooks/oauth/core.tsx | 6 +++--- apps/admin/hooks/use-sidebar-menu/core.ts | 10 +++++----- 20 files changed, 62 insertions(+), 56 deletions(-) diff --git a/apps/admin/app/(all)/(dashboard)/ai/form.tsx b/apps/admin/app/(all)/(dashboard)/ai/form.tsx index f3c4915b84..12a22673ba 100644 --- a/apps/admin/app/(all)/(dashboard)/ai/form.tsx +++ b/apps/admin/app/(all)/(dashboard)/ai/form.tsx @@ -5,7 +5,7 @@ */ import { useForm } from "react-hook-form"; -import { Lightbulb } from "lucide-react"; +import { ThoughtsOutline } from "@makeplane/propel/icons"; import { Button } from "@makeplane/propel/components/button"; import type { IFormattedInstanceConfiguration, TInstanceAIConfigurationKeys } from "@plane/types"; // components @@ -133,7 +133,7 @@ export function InstanceAIForm(props: IInstanceAIForm) { />
- +
If you have a preferred AI models vendor, please get in{" "} diff --git a/apps/admin/app/(all)/(dashboard)/authentication/github/form.tsx b/apps/admin/app/(all)/(dashboard)/authentication/github/form.tsx index a3a7da016d..b19f6bfc98 100644 --- a/apps/admin/app/(all)/(dashboard)/authentication/github/form.tsx +++ b/apps/admin/app/(all)/(dashboard)/authentication/github/form.tsx @@ -8,7 +8,7 @@ import { useState } from "react"; import { isEmpty } from "lodash-es"; import Link from "next/link"; import { useForm } from "react-hook-form"; -import { Monitor } from "lucide-react"; +import { MonitorOutline } from "@makeplane/propel/icons"; // plane internal packages import { API_BASE_URL } from "@plane/constants"; import { Button } from "@makeplane/propel/components/button"; @@ -248,7 +248,7 @@ export function InstanceGithubConfigForm(props: Props) { {/* web service details */}
- + Web
diff --git a/apps/admin/app/(all)/(dashboard)/authentication/google/form.tsx b/apps/admin/app/(all)/(dashboard)/authentication/google/form.tsx index c55fb0f69d..9454900e9a 100644 --- a/apps/admin/app/(all)/(dashboard)/authentication/google/form.tsx +++ b/apps/admin/app/(all)/(dashboard)/authentication/google/form.tsx @@ -8,7 +8,7 @@ import { useState } from "react"; import { isEmpty } from "lodash-es"; import Link from "next/link"; import { useForm } from "react-hook-form"; -import { Monitor } from "lucide-react"; +import { MonitorOutline } from "@makeplane/propel/icons"; // plane internal packages import { API_BASE_URL } from "@plane/constants"; import { Button } from "@makeplane/propel/components/button"; @@ -240,7 +240,7 @@ export function InstanceGoogleConfigForm(props: Props) { {/* web service details */}
- + Web
diff --git a/apps/admin/app/(all)/(dashboard)/general/form.tsx b/apps/admin/app/(all)/(dashboard)/general/form.tsx index 16c35eccd4..554a8a9cd6 100644 --- a/apps/admin/app/(all)/(dashboard)/general/form.tsx +++ b/apps/admin/app/(all)/(dashboard)/general/form.tsx @@ -6,7 +6,7 @@ import { observer } from "mobx-react"; import { Controller, useForm } from "react-hook-form"; -import { Telescope } from "lucide-react"; +import { UsageOutline } from "@makeplane/propel/icons"; // plane imports import { Button } from "@makeplane/propel/components/button"; import { Input } from "@makeplane/propel/components/input"; @@ -101,7 +101,7 @@ export const GeneralConfigurationForm = observer(function GeneralConfigurationFo
- +
diff --git a/apps/admin/app/(all)/(dashboard)/sidebar-dropdown.tsx b/apps/admin/app/(all)/(dashboard)/sidebar-dropdown.tsx index c6427b9450..984a3fbcbb 100644 --- a/apps/admin/app/(all)/(dashboard)/sidebar-dropdown.tsx +++ b/apps/admin/app/(all)/(dashboard)/sidebar-dropdown.tsx @@ -7,7 +7,7 @@ import { Fragment, useEffect, useState } from "react"; import { observer } from "mobx-react"; import { useTheme as useNextTheme } from "next-themes"; -import { LogOut, UserCog2, Palette } from "lucide-react"; +import { AccessAndRolesOutline, LogOutOutline, PaletteOutline } from "@makeplane/propel/icons"; import { Menu, Transition } from "@headlessui/react"; // plane internal packages import { API_BASE_URL } from "@plane/constants"; @@ -55,7 +55,7 @@ export const AdminSidebarDropdown = observer(function AdminSidebarDropdown() { className="flex w-full items-center gap-2 rounded-sm px-2 py-1 hover:bg-layer-1-hover" onClick={handleThemeSwitch} > - + Switch to {resolvedTheme === "dark" ? "light" : "dark"} mode
@@ -67,7 +67,7 @@ export const AdminSidebarDropdown = observer(function AdminSidebarDropdown() { type="submit" className="flex w-full items-center gap-2 rounded-sm px-2 py-1 hover:bg-layer-1-hover" > - + Sign out @@ -95,7 +95,7 @@ export const AdminSidebarDropdown = observer(function AdminSidebarDropdown() { })} >
- +
{isSidebarCollapsed && ( diff --git a/apps/admin/app/(all)/(dashboard)/sidebar-help-section.tsx b/apps/admin/app/(all)/(dashboard)/sidebar-help-section.tsx index 4094bd1783..5aa5992f9c 100644 --- a/apps/admin/app/(all)/(dashboard)/sidebar-help-section.tsx +++ b/apps/admin/app/(all)/(dashboard)/sidebar-help-section.tsx @@ -7,12 +7,18 @@ import { useState, useRef } from "react"; import { observer } from "mobx-react"; import Link from "next/link"; -import { HelpCircle, MessageSquare, MoveLeft } from "lucide-react"; import { Transition } from "@headlessui/react"; import { WEB_BASE_URL } from "@plane/constants"; // plane internal packages import { Tooltip } from "@makeplane/propel/components/tooltip"; -import { Github, NewTabOutline, PagesOutline } from "@makeplane/propel/icons"; +import { + ArrowNarrowLeftOutline, + ChatOutline, + Github, + HelpOutline, + NewTabOutline, + PagesOutline, +} from "@makeplane/propel/icons"; import { cn } from "@plane/utils"; // hooks import { useInstance, useTheme } from "@/hooks/store"; @@ -27,7 +33,7 @@ const helpOptions = [ { name: "Join our Forum", href: "https://forum.plane.so", - Icon: MessageSquare, + Icon: ChatOutline, }, { name: "Report a bug", @@ -87,7 +93,7 @@ export const AdminSidebarHelpSection = observer(function AdminSidebarHelpSection }`} onClick={() => setIsNeedHelpOpen((prev) => !prev)} > - + @@ -99,7 +105,7 @@ export const AdminSidebarHelpSection = observer(function AdminSidebarHelpSection }`} onClick={() => toggleSidebar(!isSidebarCollapsed)} > - +
diff --git a/apps/admin/app/(all)/(dashboard)/workspace/page.tsx b/apps/admin/app/(all)/(dashboard)/workspace/page.tsx index 5ef4a28183..bbe77cb614 100644 --- a/apps/admin/app/(all)/(dashboard)/workspace/page.tsx +++ b/apps/admin/app/(all)/(dashboard)/workspace/page.tsx @@ -8,7 +8,7 @@ import { useState } from "react"; import { observer } from "mobx-react"; import Link from "next/link"; import useSWR from "swr"; -import { Loader as LoaderIcon } from "lucide-react"; +import { LoadingOutline as LoaderIcon } from "@makeplane/propel/icons"; // types import { AnchorButton } from "@makeplane/propel/components/anchor-button"; import { Button } from "@makeplane/propel/components/button"; diff --git a/apps/admin/app/(all)/(home)/auth-banner.tsx b/apps/admin/app/(all)/(home)/auth-banner.tsx index 909995df46..83336a9564 100644 --- a/apps/admin/app/(all)/(home)/auth-banner.tsx +++ b/apps/admin/app/(all)/(home)/auth-banner.tsx @@ -4,11 +4,10 @@ * See the LICENSE file for details. */ -import { Info } from "lucide-react"; // plane constants import type { TAdminAuthErrorInfo } from "@plane/constants"; // icons -import { CloseOutline } from "@makeplane/propel/icons"; +import { CloseOutline, InfoOutline } from "@makeplane/propel/icons"; type TAuthBanner = { bannerData: TAdminAuthErrorInfo | undefined; @@ -22,7 +21,7 @@ export function AuthBanner(props: TAuthBanner) { return (
- +
{bannerData?.message}
) : ( )} diff --git a/apps/admin/components/authentication/gitea-config.tsx b/apps/admin/components/authentication/gitea-config.tsx index ba5981998a..a48c31c4e5 100644 --- a/apps/admin/components/authentication/gitea-config.tsx +++ b/apps/admin/components/authentication/gitea-config.tsx @@ -7,7 +7,7 @@ import { observer } from "mobx-react"; import Link from "next/link"; // icons -import { Settings2 } from "lucide-react"; +import { SettingsOutline } from "@makeplane/propel/icons"; // plane internal packages import { AnchorButton } from "@makeplane/propel/components/anchor-button"; import { Button } from "@makeplane/propel/components/button"; @@ -59,7 +59,7 @@ export const GiteaConfiguration = observer(function GiteaConfiguration(props: Pr stretch="auto" nativeButton={false} render={} - icon={} + icon={} label="Configure" /> )} diff --git a/apps/admin/components/authentication/github-config.tsx b/apps/admin/components/authentication/github-config.tsx index e4700ec580..03c7bbbb2d 100644 --- a/apps/admin/components/authentication/github-config.tsx +++ b/apps/admin/components/authentication/github-config.tsx @@ -7,7 +7,7 @@ import { observer } from "mobx-react"; import Link from "next/link"; // icons -import { Settings2 } from "lucide-react"; +import { SettingsOutline } from "@makeplane/propel/icons"; // plane internal packages import { AnchorButton } from "@makeplane/propel/components/anchor-button"; import { Button } from "@makeplane/propel/components/button"; @@ -57,7 +57,7 @@ export const GithubConfiguration = observer(function GithubConfiguration(props: stretch="auto" nativeButton={false} render={} - icon={} + icon={} label="Configure" /> )} diff --git a/apps/admin/components/authentication/gitlab-config.tsx b/apps/admin/components/authentication/gitlab-config.tsx index 0f13592d21..26dea3c4dc 100644 --- a/apps/admin/components/authentication/gitlab-config.tsx +++ b/apps/admin/components/authentication/gitlab-config.tsx @@ -7,7 +7,7 @@ import { observer } from "mobx-react"; import Link from "next/link"; // icons -import { Settings2 } from "lucide-react"; +import { SettingsOutline } from "@makeplane/propel/icons"; // plane internal packages import { AnchorButton } from "@makeplane/propel/components/anchor-button"; import { Button } from "@makeplane/propel/components/button"; @@ -57,7 +57,7 @@ export const GitlabConfiguration = observer(function GitlabConfiguration(props: stretch="auto" nativeButton={false} render={} - icon={} + icon={} label="Configure" /> )} diff --git a/apps/admin/components/authentication/google-config.tsx b/apps/admin/components/authentication/google-config.tsx index c88ece5c49..0aeed83a6a 100644 --- a/apps/admin/components/authentication/google-config.tsx +++ b/apps/admin/components/authentication/google-config.tsx @@ -7,7 +7,7 @@ import { observer } from "mobx-react"; import Link from "next/link"; // icons -import { Settings2 } from "lucide-react"; +import { SettingsOutline } from "@makeplane/propel/icons"; // plane internal packages import { AnchorButton } from "@makeplane/propel/components/anchor-button"; import { Button } from "@makeplane/propel/components/button"; @@ -57,7 +57,7 @@ export const GoogleConfiguration = observer(function GoogleConfiguration(props: stretch="auto" nativeButton={false} render={} - icon={} + icon={} label="Configure" /> )} diff --git a/apps/admin/components/common/banner.tsx b/apps/admin/components/common/banner.tsx index 1c56afa3c7..b8d9c4fb66 100644 --- a/apps/admin/components/common/banner.tsx +++ b/apps/admin/components/common/banner.tsx @@ -4,7 +4,7 @@ * See the LICENSE file for details. */ -import { AlertCircle, CheckCircle2 } from "lucide-react"; +import { TickCircleOutline, WarningCircleOutline } from "@makeplane/propel/icons"; type TBanner = { type: "success" | "error"; @@ -22,10 +22,10 @@ export function Banner(props: TBanner) {
{type === "error" ? ( - ) : ( -
diff --git a/apps/admin/components/common/controller-input.tsx b/apps/admin/components/common/controller-input.tsx index 37107a14a5..d3e06ab035 100644 --- a/apps/admin/components/common/controller-input.tsx +++ b/apps/admin/components/common/controller-input.tsx @@ -8,7 +8,7 @@ import React, { useState } from "react"; import type { Control, FieldPath, FieldValues } from "react-hook-form"; import { Controller } from "react-hook-form"; // icons -import { Eye, EyeOff } from "lucide-react"; +import { HideOutline, ShowOutline } from "@makeplane/propel/icons"; // plane internal packages import { Input, InputGroup } from "@makeplane/propel/components/input"; @@ -71,7 +71,7 @@ export function ControllerInput( className="flex items-center justify-center text-placeholder" onClick={() => setShowPassword(false)} > - + ) : ( ))} diff --git a/apps/admin/components/common/header/index.tsx b/apps/admin/components/common/header/index.tsx index 441a330fc7..7c148a3d2d 100644 --- a/apps/admin/components/common/header/index.tsx +++ b/apps/admin/components/common/header/index.tsx @@ -9,7 +9,8 @@ import { observer } from "mobx-react"; import Link from "next/link"; import { usePathname } from "next/navigation"; // icons -import { Menu, Settings } from "lucide-react"; +import { Menu } from "lucide-react"; +import { SettingsOutline } from "@makeplane/propel/icons"; // plane internal packages import { Breadcrumb, @@ -73,8 +74,8 @@ export const AdminHeader = observer(function AdminHeader() { } + label="SettingsOutline" + icon={} render={} /> diff --git a/apps/admin/components/common/password-strength-indicator.tsx b/apps/admin/components/common/password-strength-indicator.tsx index 5bdc4a8935..2c62d2a6ff 100644 --- a/apps/admin/components/common/password-strength-indicator.tsx +++ b/apps/admin/components/common/password-strength-indicator.tsx @@ -4,7 +4,7 @@ * See the LICENSE file for details. */ -import { CircleCheck } from "lucide-react"; +import { TickCircleOutline } from "@makeplane/propel/icons"; // plane internal packages import { E_PASSWORD_STRENGTH } from "@plane/constants"; import { cn, getPasswordCriteria, getPasswordStrength } from "@plane/utils"; @@ -120,7 +120,7 @@ export function PasswordStrengthIndicator({ {criteria.map((criterion) => (
- handleShowPassword("password")} > - + ) : ( )} @@ -325,7 +325,7 @@ export function InstanceSetupForm() { className="flex items-center justify-center text-placeholder" onClick={() => handleShowPassword("retypePassword")} > - + ) : ( )} diff --git a/apps/admin/hooks/oauth/core.tsx b/apps/admin/hooks/oauth/core.tsx index 9e6914e41c..bdafd3e0b7 100644 --- a/apps/admin/hooks/oauth/core.tsx +++ b/apps/admin/hooks/oauth/core.tsx @@ -4,7 +4,7 @@ * See the LICENSE file for details. */ -import { KeyRound, Mails } from "lucide-react"; +import { KeyOutline, MailOutline } from "@makeplane/propel/icons"; // types import type { TCoreInstanceAuthenticationModeKeys, @@ -38,7 +38,7 @@ export const getCoreAuthenticationModesMap: ( name: "Unique codes", description: "Log in or sign up for Plane using codes sent via email. You need to have set up SMTP to use this method.", - icon: , + icon: , config: , enabledConfigKey: "ENABLE_MAGIC_LINK_LOGIN", }, @@ -46,7 +46,7 @@ export const getCoreAuthenticationModesMap: ( key: "passwords-login", name: "Passwords", description: "Allow members to create accounts with passwords and use it with their email addresses to sign in.", - icon: , + icon: , config: , enabledConfigKey: "ENABLE_EMAIL_PASSWORD", }, diff --git a/apps/admin/hooks/use-sidebar-menu/core.ts b/apps/admin/hooks/use-sidebar-menu/core.ts index e0a961f29b..ac077b6dcd 100644 --- a/apps/admin/hooks/use-sidebar-menu/core.ts +++ b/apps/admin/hooks/use-sidebar-menu/core.ts @@ -4,9 +4,9 @@ * See the LICENSE file for details. */ -import { Image, BrainCog, Cog, Mail } from "lucide-react"; +import { BrainCog } from "lucide-react"; // plane imports -import { LockOutline, WorkspaceOutline } from "@makeplane/propel/icons"; +import { ImageOutline, LockOutline, MailOutline, SettingsOutline, WorkspaceOutline } from "@makeplane/propel/icons"; // types import type { TSidebarMenuItem } from "./types"; @@ -14,13 +14,13 @@ export type TCoreSidebarMenuKey = "general" | "email" | "workspace" | "authentic export const coreSidebarMenuLinks: Record = { general: { - Icon: Cog, + Icon: SettingsOutline, name: "General", description: "Identify your instances and get key details.", href: `/general/`, }, email: { - Icon: Mail, + Icon: MailOutline, name: "Email", description: "Configure your SMTP controls.", href: `/email/`, @@ -44,7 +44,7 @@ export const coreSidebarMenuLinks: Record href: `/ai/`, }, image: { - Icon: Image, + Icon: ImageOutline, name: "Images in Plane", description: "Allow third-party image libraries.", href: `/image/`,