From 9f73d08c237f3fb605ac577c3ef6bc8e5d628ee9 Mon Sep 17 00:00:00 2001
From: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com>
Date: Wed, 2 Sep 2026 23:24:15 +0530
Subject: [PATCH] refactor: migrate package icons to @makeplane/propel (#9732)
* refactor: migrate package icons to @makeplane/propel
Replace confirmed icon symbols in packages/editor, packages/propel,
packages/ui and packages/utils with their audited
@makeplane/propel/icons targets, including the relative legacy icon
imports inside packages/propel/src. Add the dependency to all four
workspaces.
Widen the icon component types that were pinned to LucideIcon so both
Lucide and Propel icons satisfy them: the editor menu items, editor
constants, custom image utils, alignment selector, the ui alert modal
variants, and the link icon matchers in utils. Each only renders the
icon as a component, and the matcher list still mixes both sources.
Two files are deliberately left alone. The emoji-icon-picker directory
is out of scope, and icons/priority-icon.tsx dispatches one shared size
prop across four still-unresolved Lucide icons, so migrating only its
urgent glyph would break that prop and mix fill with stroke.
* fix: address icon migration review on packages
Restore the 49 user-facing strings the identifier rename overwrote. The
migration replaced every occurrence of a source symbol name, including
ones inside string literals and JSX text, so editor toolbar labels,
slash-command titles, image download tooltips and aria-labels, and the
Storybook example labels all displayed icon component names.
Drop strokeWidth from Propel icons; the generated glyphs paint with
fill="currentColor" so the prop never changed weight.
Pick StarFilled for the selected FavoriteStar. Lucide's Star with a fill
utility was a solid star, and StarOutline is a ring path, so filling it
does not reproduce that shape.
Also correct six toolbar story tooltips that already read "Bullet
ListLayoutIcon" on preview, from an earlier migration with the same
over-broad rename.
* fix: restore context-menu story labels after icon rename
The mechanical icon rename also replaced JSX text children that matched
old lucide identifiers (Edit, Download, Share, Archive). Restore the 13
user-facing labels in the context-menu stories.
* chore: align lockfile @makeplane/propel importers to 0.3.0
The preview merge left editor, propel, ui, and utils resolved to 0.2.0
while catalog is 0.3.0. Re-resolve those importers so the lockfile matches.
---
packages/editor/package.json | 1 +
.../src/components/links/link-edit-view.tsx | 4 +-
.../src/components/links/link-preview.tsx | 11 +--
.../components/menus/block-menu-options.tsx | 4 +-
.../src/components/menus/block-menu.tsx | 6 +-
.../menus/bubble-menu/alignment-selector.tsx | 12 +--
.../menus/bubble-menu/color-selector.tsx | 5 +-
.../menus/bubble-menu/link-selector.tsx | 8 +-
.../menus/bubble-menu/node-selector.tsx | 6 +-
.../editor/src/components/menus/menu-items.ts | 99 +++++++++----------
packages/editor/src/constants/common.ts | 90 ++++++++---------
.../src/extensions/callout/color-selector.tsx | 4 +-
.../extensions/code/code-block-node-view.tsx | 7 +-
.../components/toolbar/alignment.tsx | 4 +-
.../components/toolbar/download.tsx | 4 +-
.../components/toolbar/full-screen/modal.tsx | 13 ++-
.../components/toolbar/full-screen/root.tsx | 4 +-
.../custom-image/components/uploader.tsx | 6 +-
.../src/extensions/custom-image/utils.ts | 12 +--
.../slash-commands/command-items-list.tsx | 77 +++++++--------
.../plugins/drag-handles/color-selector.tsx | 8 +-
.../drag-handles/column/drag-handle.tsx | 4 +-
.../plugins/drag-handles/column/dropdown.tsx | 22 +++--
.../plugins/drag-handles/row/drag-handle.tsx | 4 +-
.../plugins/drag-handles/row/dropdown.tsx | 22 +++--
packages/propel/package.json | 1 +
packages/propel/src/accordion/accordion.tsx | 4 +-
packages/propel/src/calendar/root.tsx | 4 +-
.../src/collapsible/collapsible.stories.tsx | 16 +--
.../propel/src/combobox/combobox.stories.tsx | 35 ++++---
packages/propel/src/combobox/combobox.tsx | 4 +-
.../propel/src/command/command.stories.tsx | 24 ++---
packages/propel/src/command/command.tsx | 4 +-
.../src/context-menu/context-menu.stories.tsx | 77 ++++++++-------
packages/propel/src/dialog/dialog.stories.tsx | 4 +-
.../emoji-reaction-picker.stories.tsx | 18 ++--
.../src/emoji-reaction/emoji-reaction.tsx | 4 +-
packages/propel/src/menu/menu.stories.tsx | 23 +++--
packages/propel/src/menu/menu.tsx | 9 +-
.../propel/src/popover/popover.stories.tsx | 4 +-
.../tab-navigation/tab-navigation.stories.tsx | 30 +++---
packages/propel/src/tabs/tabs.stories.tsx | 19 ++--
packages/propel/src/toast/toast.tsx | 15 ++-
.../propel/src/toolbar/toolbar.stories.tsx | 92 ++++++++---------
.../propel/src/tooltip/tooltip.stories.tsx | 6 +-
packages/ui/package.json | 1 +
.../src/breadcrumbs/breadcrumbs.stories.tsx | 8 +-
packages/ui/src/breadcrumbs/breadcrumbs.tsx | 6 +-
.../ui/src/collapsible/collapsible-button.tsx | 4 +-
packages/ui/src/drag-handle.tsx | 6 +-
.../ui/src/dropdown/common/input-search.tsx | 4 +-
packages/ui/src/dropdown/common/options.tsx | 4 +-
.../ui/src/dropdowns/context-menu/item.tsx | 4 +-
packages/ui/src/dropdowns/custom-menu.tsx | 11 +--
.../ui/src/dropdowns/custom-search-select.tsx | 11 +--
packages/ui/src/dropdowns/custom-select.tsx | 6 +-
packages/ui/src/favorite-star.tsx | 8 +-
.../ui/src/form-fields/password/indicator.tsx | 4 +-
.../form-fields/password/password-input.tsx | 6 +-
packages/ui/src/modals/alert-modal.tsx | 9 +-
packages/ui/src/popovers/popover.tsx | 4 +-
packages/utils/package.json | 1 +
packages/utils/src/get-icon-for-link.ts | 56 +++++------
pnpm-lock.yaml | 12 +++
64 files changed, 517 insertions(+), 478 deletions(-)
diff --git a/packages/editor/package.json b/packages/editor/package.json
index 20e4a41be4..8f71154da7 100644
--- a/packages/editor/package.json
+++ b/packages/editor/package.json
@@ -37,6 +37,7 @@
"@floating-ui/react": "catalog:",
"@headlessui/react": "catalog:",
"@hocuspocus/provider": "catalog:",
+ "@makeplane/propel": "catalog:",
"@plane/constants": "workspace:*",
"@plane/hooks": "workspace:*",
"@plane/propel": "workspace:*",
diff --git a/packages/editor/src/components/links/link-edit-view.tsx b/packages/editor/src/components/links/link-edit-view.tsx
index 3adbefa27c..cc4b2b990d 100644
--- a/packages/editor/src/components/links/link-edit-view.tsx
+++ b/packages/editor/src/components/links/link-edit-view.tsx
@@ -5,7 +5,7 @@
*/
import type { Node } from "@tiptap/pm/model";
-import { Link2Off } from "lucide-react";
+import { UnlinkOutline } from "@makeplane/propel/icons";
import { useCallback, useEffect, useRef, useState } from "react";
// components
import type { LinkViewProps, LinkViews } from "@/components/links";
@@ -148,7 +148,7 @@ export function LinkEditView({ viewProps }: LinkEditViewProps) {
{url?.length > 40 ? url.slice(0, 40) + "..." : url}