From 4a6f9edff6aee2dd1099f3ba7d1362aca8ea6826 Mon Sep 17 00:00:00 2001
From: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com>
Date: Fri, 28 Aug 2026 19:53:38 +0530
Subject: [PATCH] refactor: migrate web Input to @makeplane/propel Input
(#9708)
Replace @plane/ui Input in apps/web with Propel Input and InputGroup.
hasError maps to Field invalid. Default size is 2xl to match the old h-10 height.
---
.../(projects)/workspace-views/page.tsx | 23 +-
.../components/account/auth-forms/email.tsx | 83 +++----
.../account/auth-forms/forgot-password.tsx | 33 +--
.../account/auth-forms/password.tsx | 27 +--
.../account/auth-forms/reset-password.tsx | 69 +++---
.../account/auth-forms/set-password.tsx | 69 +++---
.../account/auth-forms/unique-code.tsx | 33 +--
.../core/components/api-token/modal/form.tsx | 24 ++-
.../automation/select-month-modal.tsx | 63 +++---
.../components/core/image-picker-popover.tsx | 37 ++--
.../core/modals/change-email-modal.tsx | 60 +++---
.../core/modals/gpt-assistant-popover.tsx | 31 +--
apps/web/core/components/cycles/form.tsx | 31 +--
.../links/create-update-link-modal.tsx | 50 +++--
.../inbox/modals/create-modal/issue-title.tsx | 27 +--
.../issue-detail/label/create-label.tsx | 31 +--
.../links/create-update-link-modal.tsx | 50 +++--
.../issue-modal/components/title-input.tsx | 39 ++--
.../labels/create-update-label-inline.tsx | 30 +--
apps/web/core/components/modules/form.tsx | 31 +--
.../modules/links/create-update-modal.tsx | 51 +++--
.../onboarding/create-workspace.tsx | 86 ++++----
.../components/onboarding/invite-members.tsx | 37 ++--
.../components/onboarding/profile-setup.tsx | 156 +++++++-------
.../components/onboarding/steps/team/root.tsx | 37 ++--
.../components/pages/modals/page-form.tsx | 27 +--
.../power-k/ui/modal/shortcuts-root.tsx | 10 +-
.../project-states/create-update/form.tsx | 32 +--
.../project/create/common-attributes.tsx | 56 ++---
.../project/delete-project-modal.tsx | 58 ++---
apps/web/core/components/project/form.tsx | 58 ++---
.../project/leave-project-modal.tsx | 54 +++--
.../profile/content/pages/general/form.tsx | 118 +++++-----
.../profile/content/pages/security.tsx | 204 +++++++++---------
apps/web/core/components/views/form.tsx | 33 +--
.../core/components/web-hooks/form/input.tsx | 27 ++-
.../workspace/create-workspace-form.tsx | 102 ++++-----
.../workspace/delete-workspace-form.tsx | 58 ++---
.../workspace/invite-modal/fields.tsx | 29 +--
.../workspace/settings/workspace-details.tsx | 62 +++---
.../sidebar/favorites/new-fav-folder.tsx | 17 +-
.../core/components/workspace/views/form.tsx | 29 +--
42 files changed, 1199 insertions(+), 983 deletions(-)
diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/page.tsx
index e80d29cf78..ca468e2d3c 100644
--- a/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/page.tsx
+++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/page.tsx
@@ -7,10 +7,11 @@
import React, { useState } from "react";
import { observer } from "mobx-react";
// plane imports
+import { Input, InputGroup } from "@makeplane/propel/components/input";
import { DEFAULT_GLOBAL_VIEWS_LIST } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { SearchIcon } from "@plane/propel/icons";
-import { Input } from "@plane/ui";
+
// components
import { PageHead } from "@/components/core/page-title";
import { GlobalDefaultViewListItem } from "@/components/workspace/views/default-view-list-item";
@@ -30,15 +31,17 @@ function WorkspaceViewsPage() {
<>
{t("workspace_creation.form.url.edit_slug")}
diff --git a/apps/web/core/components/onboarding/invite-members.tsx b/apps/web/core/components/onboarding/invite-members.tsx index b73c87bb8b..3a4d03a78e 100644 --- a/apps/web/core/components/onboarding/invite-members.tsx +++ b/apps/web/core/components/onboarding/invite-members.tsx @@ -20,6 +20,8 @@ import { usePopper } from "react-popper"; import { XCircle } from "lucide-react"; import { Listbox } from "@headlessui/react"; // plane imports +import { Field } from "@makeplane/propel/components/field"; +import { Input, InputGroup } from "@makeplane/propel/components/input"; import type { EUserPermissions } from "@plane/constants"; import { ROLE, ROLE_DETAILS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; @@ -29,7 +31,7 @@ import { PlusIcon, CheckIcon, ChevronDownIcon } from "@plane/propel/icons"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import type { IUser, IWorkspace } from "@plane/types"; // ui -import { Input, Spinner } from "@plane/ui"; +import { Spinner } from "@plane/ui"; // services import { WorkspaceService } from "@/services/workspace.service"; // components @@ -153,21 +155,24 @@ const InviteMemberInput = observer(function InviteMemberInput(props: InviteMembe }, }} render={({ field: { value, onChange, ref } }) => ( - { - emailOnChange(event); - onChange(event); - }} - ref={ref} - hasError={Boolean(errors.emails?.[index]?.email)} - placeholder={placeholderEmails[index % placeholderEmails.length]} - className="w-full border-strong text-11 placeholder:text-placeholder sm:text-13" - autoComplete="off" - /> +
{t("workspace_creation.errors.validation.url_already_taken")}
diff --git a/apps/web/core/components/workspace/delete-workspace-form.tsx b/apps/web/core/components/workspace/delete-workspace-form.tsx
index 4d9196b16f..6c9d6fb33b 100644
--- a/apps/web/core/components/workspace/delete-workspace-form.tsx
+++ b/apps/web/core/components/workspace/delete-workspace-form.tsx
@@ -8,11 +8,13 @@ import { observer } from "mobx-react";
import { Controller, useForm } from "react-hook-form";
import { AlertTriangle } from "lucide-react";
// Plane Imports
+import { Field } from "@makeplane/propel/components/field";
+import { Input, InputGroup } from "@makeplane/propel/components/input";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { TOAST_TYPE, setToast } from "@plane/propel/toast";
import type { IWorkspace } from "@plane/types";
-import { Input } from "@plane/ui";
+
import { cn } from "@plane/utils";
// hooks
import { useWorkspace } from "@/hooks/store/use-workspace";
@@ -106,18 +108,21 @@ export const DeleteWorkspaceForm = observer(function DeleteWorkspaceForm(props:
control={control}
name="workspaceName"
render={({ field: { value, onChange, ref } }) => (
-
+
{errors.name.message}
} @@ -248,20 +253,23 @@ export const WorkspaceDetails = observer(function WorkspaceDetails() { control={control} name="url" render={({ field: { onChange, ref } }) => ( - +