From 651b252c23eef72e1374df140a0e1517de4f5bc0 Mon Sep 17 00:00:00 2001
From: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com>
Date: Mon, 16 Oct 2023 20:27:22 +0530
Subject: [PATCH] chore: icon revamp and refactor (#2447)
* chore: svg icons added in plane/ui package
* chore: swap priority and state icon with plane/ui icons
* chore: replace core folder icons with lucide and plane ui icons
* style: priority icon size
* chore: replace icons with lucide and plane/ui icons
* chore: replace cycle folder icons with lucide and plane/ui icons
* chore: replace existing icons with lucide and plane/ui icons
* chore: replace existing icons with lucide and plane/ui icons
* chore: replace existing icons with lucide and plane/ui icons
* chore: replace existing icons with lucide and plane/ui icons
* chore: replace existing icons with lucide and plane/ui icons
* fix: build error
* fix: build error
* fix: build error
---
.../editor/lite-text-editor/src/ui/index.tsx | 57 ++++++++----
.../src/ui/menus/fixed-menu/index.tsx | 88 +++++++++++--------
packages/ui/src/icons/admin-profile-icon.tsx | 33 +++++++
packages/ui/src/icons/archive-icon.tsx | 39 ++++++++
packages/ui/src/icons/blocked-icon.tsx | 31 +++++++
packages/ui/src/icons/blocker-icon.tsx | 31 +++++++
packages/ui/src/icons/calendar-after-icon.tsx | 33 +++++++
.../ui/src/icons/calendar-before-icon.tsx | 39 ++++++++
packages/ui/src/icons/contrast-icon.tsx | 29 ++++++
packages/ui/src/icons/copy-icon.tsx | 28 ++++++
packages/ui/src/icons/create-icon.tsx | 25 ++++++
packages/ui/src/icons/dice-icon.tsx | 47 ++++++++++
packages/ui/src/icons/discord-icon.tsx | 31 +++++++
packages/ui/src/icons/double-circle-icon.tsx | 20 +++++
packages/ui/src/icons/external-link-icon.tsx | 25 ++++++
packages/ui/src/icons/github-icon.tsx | 33 +++++++
packages/ui/src/icons/index.tsx | 28 ++++++
packages/ui/src/icons/layer-stack.tsx | 33 +++++++
packages/ui/src/icons/layers-icon.tsx | 45 ++++++++++
packages/ui/src/icons/modal-peek-icon.tsx | 29 ++++++
packages/ui/src/icons/module/backlog.tsx | 39 ++++++++
packages/ui/src/icons/module/cancelled.tsx | 30 +++++++
packages/ui/src/icons/module/completed.tsx | 23 +++++
packages/ui/src/icons/module/in-progress.tsx | 43 +++++++++
packages/ui/src/icons/module/index.ts | 7 ++
.../src/icons/module/module-status-icon.tsx | 67 ++++++++++++++
packages/ui/src/icons/module/paused.tsx | 30 +++++++
packages/ui/src/icons/module/planned.tsx | 23 +++++
packages/ui/src/icons/panel-center-icon.tsx | 29 ++++++
packages/ui/src/icons/photo-filter-icon.tsx | 35 ++++++++
packages/ui/src/icons/priority-icon.tsx | 36 ++++++++
packages/ui/src/icons/related-icon.tsx | 33 +++++++
packages/ui/src/icons/running-icon.tsx | 18 ++++
packages/ui/src/icons/side-peek-icon.tsx | 29 ++++++
.../ui/src/icons/state/backlog-group-icon.tsx | 39 ++++++++
.../src/icons/state/cancelled-group-icon.tsx | 32 +++++++
.../src/icons/state/completed-group-icon.tsx | 25 ++++++
packages/ui/src/icons/state/helper.tsx | 24 +++++
packages/ui/src/icons/state/index.tsx | 6 ++
.../ui/src/icons/state/started-group-icon.tsx | 43 +++++++++
.../ui/src/icons/state/state-group-icon.tsx | 35 ++++++++
.../src/icons/state/unstarted-group-icon.tsx | 21 +++++
packages/ui/src/icons/subscribe-icon.tsx | 33 +++++++
packages/ui/src/icons/transfer-icon.tsx | 18 ++++
packages/ui/src/icons/type.d.ts | 10 +++
packages/ui/src/icons/user-group-icon.tsx | 38 ++++++++
packages/ui/src/index.tsx | 1 +
.../custom-analytics/sidebar/sidebar.tsx | 13 ++-
.../analytics/custom-analytics/table.tsx | 2 +-
.../analytics/scope-and-demand/demand.tsx | 4 +-
.../auth-screens/project/join-project.tsx | 4 +-
.../automation/auto-close-automation.tsx | 6 +-
web/components/breadcrumbs/index.tsx | 17 +---
.../change-interface-theme.tsx | 4 +-
web/components/command-palette/command-k.tsx | 65 +++++++++-----
web/components/command-palette/helpers.tsx | 21 ++---
.../issue/change-issue-assignee.tsx | 4 +-
.../issue/change-issue-priority.tsx | 5 +-
.../issue/change-issue-state.tsx | 6 +-
.../command-palette/shortcuts-modal.tsx | 19 ++--
.../common/product-updates-modal.tsx | 7 +-
web/components/core/activity.tsx | 11 ++-
.../core/filters/date-filter-modal.tsx | 4 +-
.../core/filters/date-filter-select.tsx | 5 +-
web/components/core/filters/filters-list.tsx | 54 ++++--------
.../core/filters/issues-view-filter.tsx | 32 +++----
.../core/filters/workspace-filters-list.tsx | 28 +++---
.../core/modals/bulk-delete-issues-modal.tsx | 9 +-
.../modals/existing-issues-list-modal.tsx | 18 ++--
.../core/modals/image-upload-modal.tsx | 4 +-
web/components/core/reaction-selector.tsx | 4 +-
web/components/core/sidebar/links-list.tsx | 17 ++--
.../core/theme/color-picker-input.tsx | 4 +-
.../issue-column/issue-column.tsx | 11 ++-
.../views/spreadsheet-view/single-issue.tsx | 11 ++-
.../spreadsheet-view/spreadsheet-view.tsx | 64 ++++++--------
.../cycles/active-cycle-details.tsx | 46 +++++-----
web/components/cycles/cycles-board-card.tsx | 44 +++++-----
web/components/cycles/cycles-list-item.tsx | 44 +++++-----
web/components/cycles/gantt-chart/blocks.tsx | 4 +-
web/components/cycles/select.tsx | 8 +-
web/components/cycles/sidebar.tsx | 46 +++++-----
web/components/cycles/single-cycle-card.tsx | 44 +++++-----
web/components/cycles/single-cycle-list.tsx | 41 ++++-----
.../cycles/transfer-issues-modal.tsx | 12 +--
web/components/cycles/transfer-issues.tsx | 6 +-
.../estimates/delete-estimate-modal.tsx | 4 +-
web/components/estimates/single-estimate.tsx | 6 +-
web/components/exporter/guide.tsx | 9 +-
web/components/gantt-chart/chart/index.tsx | 9 +-
.../gantt-chart/helpers/draggable.tsx | 29 ++----
web/components/gantt-chart/sidebar.tsx | 6 +-
web/components/headers/project-views.tsx | 4 +-
web/components/inbox/filters-dropdown.tsx | 2 +-
web/components/inbox/filters-list.tsx | 14 +--
web/components/inbox/issue-card.tsx | 7 +-
.../inbox/modals/accept-issue-modal.tsx | 4 +-
.../inbox/modals/decline-issue-modal.tsx | 4 +-
.../inbox/modals/delete-issue-modal.tsx | 4 +-
.../inbox/modals/select-duplicate.tsx | 9 +-
.../integration/delete-import-modal.tsx | 4 +-
web/components/integration/github/root.tsx | 16 ++--
web/components/integration/guide.tsx | 4 +-
.../integration/jira/give-details.tsx | 4 +-
web/components/integration/jira/root.tsx | 15 ++--
web/components/integration/single-import.tsx | 4 +-
.../integration/single-integration-card.tsx | 4 +-
web/components/issues/activity.tsx | 4 +-
.../issues/attachment/attachments.tsx | 8 +-
.../attachment/delete-attachment-modal.tsx | 4 +-
web/components/issues/comment/add-comment.tsx | 12 +--
.../issues/comment/comment-card.tsx | 20 ++---
.../issues/delete-draft-issue-modal.tsx | 4 +-
web/components/issues/delete-issue-modal.tsx | 4 +-
web/components/issues/draft-issue-form.tsx | 8 +-
web/components/issues/form.tsx | 8 +-
.../filters/applied-filters/priority.tsx | 4 +-
.../filters/applied-filters/state-group.tsx | 2 +-
.../filters/applied-filters/state.tsx | 2 +-
.../filters/header/filters/state-group.tsx | 2 +-
.../filters/header/filters/state.tsx | 4 +-
.../issues/issue-layouts/gantt/blocks.tsx | 4 +-
.../kanban/headers/state-group.tsx | 2 +-
.../list/headers/state-group.tsx | 2 +-
.../issues/issue-layouts/properties/state.tsx | 3 +-
.../issue-layouts/spreadsheet/cycle-root.tsx | 4 +-
.../issue-layouts/spreadsheet/module-root.tsx | 4 +-
.../spreadsheet/project-view-root.tsx | 4 +-
.../issues/issue-layouts/spreadsheet/root.tsx | 6 +-
web/components/issues/main-content.tsx | 8 +-
.../my-issues/my-issues-select-filters.tsx | 2 +-
.../my-issues/my-issues-view-options.tsx | 7 +-
.../issues/parent-issues-list-modal.tsx | 17 ++--
.../issues/peek-overview/header.tsx | 45 ++++------
.../issues/peek-overview/issue-properties.tsx | 19 ++--
web/components/issues/select/assignee.tsx | 5 +-
web/components/issues/select/date.tsx | 6 +-
web/components/issues/select/estimate.tsx | 12 +--
web/components/issues/select/label.tsx | 14 +--
web/components/issues/select/priority.tsx | 11 +--
web/components/issues/select/project.tsx | 8 +-
web/components/issues/select/state.tsx | 8 +-
.../issues/sidebar-select/blocked.tsx | 6 +-
.../issues/sidebar-select/blocker.tsx | 6 +-
.../issues/sidebar-select/duplicate.tsx | 2 +-
.../issues/sidebar-select/estimate.tsx | 12 +--
.../issues/sidebar-select/label.tsx | 16 ++--
.../issues/sidebar-select/priority.tsx | 6 +-
.../issues/sidebar-select/relates-to.tsx | 2 +-
.../issues/sidebar-select/state.tsx | 4 +-
web/components/issues/sidebar.tsx | 37 +++-----
.../issues/view-select/assignee.tsx | 5 +-
.../issues/view-select/estimate.tsx | 8 +-
web/components/issues/view-select/label.tsx | 6 +-
.../issues/view-select/priority.tsx | 8 +-
web/components/labels/create-label-modal.tsx | 4 +-
web/components/labels/delete-label-modal.tsx | 4 +-
web/components/labels/labels-list-modal.tsx | 7 +-
web/components/labels/single-label-group.tsx | 15 ++--
web/components/labels/single-label.tsx | 17 +---
.../modules/delete-module-modal.tsx | 4 +-
web/components/modules/gantt-chart/blocks.tsx | 4 +-
web/components/modules/select/lead.tsx | 8 +-
web/components/modules/select/members.tsx | 2 +-
web/components/modules/select/status.tsx | 13 +--
.../modules/sidebar-select/select-lead.tsx | 4 +-
.../modules/sidebar-select/select-members.tsx | 2 +-
.../modules/sidebar-select/select-status.tsx | 16 +---
web/components/modules/sidebar.tsx | 50 +++++------
web/components/modules/single-module-card.tsx | 16 ++--
.../notifications/notification-card.tsx | 19 ++--
.../notifications/notification-header.tsx | 24 ++---
.../notifications/notification-popover.tsx | 4 +-
.../select-snooze-till-modal.tsx | 5 +-
web/components/onboarding/invite-members.tsx | 11 ++-
web/components/onboarding/join-workspaces.tsx | 4 +-
web/components/onboarding/tour/root.tsx | 4 +-
web/components/onboarding/tour/sidebar.tsx | 26 ++----
web/components/pages/create-block.tsx | 4 +-
.../pages/create-update-block-inline.tsx | 6 +-
web/components/pages/delete-page-modal.tsx | 4 +-
.../pages/pages-list/recent-pages-list.tsx | 8 +-
web/components/pages/pages-view.tsx | 4 +-
web/components/pages/single-page-block.tsx | 35 +++-----
.../pages/single-page-detailed-item.tsx | 17 ++--
.../pages/single-page-list-item.tsx | 27 ++----
web/components/profile/overview/activity.tsx | 5 +-
web/components/profile/overview/stats.tsx | 12 +--
.../profile/profile-issues-view-options.tsx | 9 +-
web/components/profile/sidebar.tsx | 11 +--
.../project/confirm-project-member-remove.tsx | 4 +-
.../project/create-project-modal.tsx | 17 ++--
.../project/delete-project-modal.tsx | 4 +-
web/components/project/label-select.tsx | 10 +--
.../project/leave-project-modal.tsx | 4 +-
web/components/project/members-select.tsx | 13 ++-
web/components/project/priority-select.tsx | 17 ++--
.../project/publish-project/modal.tsx | 8 +-
.../project/publish-project/popover.tsx | 12 +--
.../project/send-project-invitation-modal.tsx | 11 ++-
.../project/settings/single-label.tsx | 6 +-
web/components/project/sidebar-list-item.tsx | 67 +++++++-------
web/components/project/sidebar-list.tsx | 31 +++----
web/components/states/create-state-modal.tsx | 4 +-
web/components/states/delete-state-modal.tsx | 4 +-
web/components/states/single-state.tsx | 10 +--
web/components/states/state-select.tsx | 12 +--
web/components/toast-alert/index.tsx | 18 ++--
web/components/ui/avatar.tsx | 8 +-
web/components/ui/date.tsx | 16 ++--
web/components/ui/dropdowns/custom-menu.tsx | 13 +--
.../ui/dropdowns/custom-search-select.tsx | 11 ++-
web/components/ui/dropdowns/custom-select.tsx | 7 +-
web/components/ui/empty-space.tsx | 18 +---
web/components/ui/icon.tsx | 4 +-
.../integration-and-import-export-banner.tsx | 4 +-
web/components/ui/multi-level-dropdown.tsx | 27 ++----
web/components/ui/multi-level-select.tsx | 18 ++--
web/components/ui/product-updates-modal.tsx | 7 +-
web/components/views/delete-view-modal.tsx | 4 +-
web/components/views/select-filters.tsx | 2 +-
web/components/web-view/activity-message.tsx | 69 +++++++++------
web/components/web-view/comment-card.tsx | 20 ++---
web/components/web-view/issue-activity.tsx | 4 +-
.../web-view/issue-properties-detail.tsx | 6 +-
.../web-view/issues-select-bottom-sheet.tsx | 4 +-
web/components/web-view/select-priority.tsx | 12 +--
web/components/web-view/select-state.tsx | 2 +-
web/components/web-view/web-view-modal.tsx | 9 +-
.../confirm-workspace-member-remove.tsx | 4 +-
.../workspace/delete-workspace-modal.tsx | 4 +-
web/components/workspace/help-section.tsx | 18 ++--
web/components/workspace/issues-list.tsx | 9 +-
web/components/workspace/issues-stats.tsx | 4 +-
.../send-workspace-invitation-modal.tsx | 6 +-
web/components/workspace/sidebar-dropdown.tsx | 16 ++--
web/components/workspace/sidebar-menu.tsx | 12 +--
.../workspace/sidebar-quick-action.tsx | 7 +-
.../workspace/views/delete-view-modal.tsx | 4 +-
web/components/workspace/views/header.tsx | 4 +-
.../workspace/views/view-list-item.tsx | 6 +-
web/constants/{cycle.ts => cycle.tsx} | 8 +-
web/constants/project.ts | 7 +-
web/constants/spreadsheet.ts | 8 +-
web/layouts/app-layout-legacy/app-header.tsx | 4 +-
.../project-authorization-wrapper.tsx | 6 +-
.../workspace-authorization-wrapper.tsx | 6 +-
web/pages/[workspaceSlug]/analytics.tsx | 4 +-
web/pages/[workspaceSlug]/me/my-issues.tsx | 4 +-
.../[workspaceSlug]/me/profile/activity.tsx | 16 ++--
.../[workspaceSlug]/me/profile/index.tsx | 7 +-
.../archived-issues/[archivedIssueId].tsx | 10 ++-
.../[projectId]/archived-issues/index.tsx | 8 +-
.../projects/[projectId]/cycles/[cycleId].tsx | 8 +-
.../projects/[projectId]/cycles/index.tsx | 3 +-
.../[projectId]/modules/[moduleId].tsx | 4 +-
.../projects/[projectId]/modules/index.tsx | 13 ++-
.../projects/[projectId]/pages/[pageId].tsx | 32 +++----
.../projects/[projectId]/pages/index.tsx | 10 +--
.../[projectId]/settings/estimates.tsx | 4 +-
.../[projectId]/settings/features.tsx | 8 +-
.../projects/[projectId]/settings/index.tsx | 5 +-
.../projects/[projectId]/settings/members.tsx | 10 +--
.../projects/[projectId]/settings/states.tsx | 4 +-
.../projects/[projectId]/views/[viewId].tsx | 4 +-
web/pages/[workspaceSlug]/settings/index.tsx | 7 +-
.../[workspaceSlug]/settings/members.tsx | 10 +--
.../workspace-views/issues.tsx | 5 +-
web/pages/invitations/index.tsx | 4 +-
web/pages/workspace-invitations/index.tsx | 16 ++--
270 files changed, 2567 insertions(+), 1480 deletions(-)
create mode 100644 packages/ui/src/icons/admin-profile-icon.tsx
create mode 100644 packages/ui/src/icons/archive-icon.tsx
create mode 100644 packages/ui/src/icons/blocked-icon.tsx
create mode 100644 packages/ui/src/icons/blocker-icon.tsx
create mode 100644 packages/ui/src/icons/calendar-after-icon.tsx
create mode 100644 packages/ui/src/icons/calendar-before-icon.tsx
create mode 100644 packages/ui/src/icons/contrast-icon.tsx
create mode 100644 packages/ui/src/icons/copy-icon.tsx
create mode 100644 packages/ui/src/icons/create-icon.tsx
create mode 100644 packages/ui/src/icons/dice-icon.tsx
create mode 100644 packages/ui/src/icons/discord-icon.tsx
create mode 100644 packages/ui/src/icons/double-circle-icon.tsx
create mode 100644 packages/ui/src/icons/external-link-icon.tsx
create mode 100644 packages/ui/src/icons/github-icon.tsx
create mode 100644 packages/ui/src/icons/index.tsx
create mode 100644 packages/ui/src/icons/layer-stack.tsx
create mode 100644 packages/ui/src/icons/layers-icon.tsx
create mode 100644 packages/ui/src/icons/modal-peek-icon.tsx
create mode 100644 packages/ui/src/icons/module/backlog.tsx
create mode 100644 packages/ui/src/icons/module/cancelled.tsx
create mode 100644 packages/ui/src/icons/module/completed.tsx
create mode 100644 packages/ui/src/icons/module/in-progress.tsx
create mode 100644 packages/ui/src/icons/module/index.ts
create mode 100644 packages/ui/src/icons/module/module-status-icon.tsx
create mode 100644 packages/ui/src/icons/module/paused.tsx
create mode 100644 packages/ui/src/icons/module/planned.tsx
create mode 100644 packages/ui/src/icons/panel-center-icon.tsx
create mode 100644 packages/ui/src/icons/photo-filter-icon.tsx
create mode 100644 packages/ui/src/icons/priority-icon.tsx
create mode 100644 packages/ui/src/icons/related-icon.tsx
create mode 100644 packages/ui/src/icons/running-icon.tsx
create mode 100644 packages/ui/src/icons/side-peek-icon.tsx
create mode 100644 packages/ui/src/icons/state/backlog-group-icon.tsx
create mode 100644 packages/ui/src/icons/state/cancelled-group-icon.tsx
create mode 100644 packages/ui/src/icons/state/completed-group-icon.tsx
create mode 100644 packages/ui/src/icons/state/helper.tsx
create mode 100644 packages/ui/src/icons/state/index.tsx
create mode 100644 packages/ui/src/icons/state/started-group-icon.tsx
create mode 100644 packages/ui/src/icons/state/state-group-icon.tsx
create mode 100644 packages/ui/src/icons/state/unstarted-group-icon.tsx
create mode 100644 packages/ui/src/icons/subscribe-icon.tsx
create mode 100644 packages/ui/src/icons/transfer-icon.tsx
create mode 100644 packages/ui/src/icons/type.d.ts
create mode 100644 packages/ui/src/icons/user-group-icon.tsx
rename web/constants/{cycle.ts => cycle.tsx} (67%)
diff --git a/packages/editor/lite-text-editor/src/ui/index.tsx b/packages/editor/lite-text-editor/src/ui/index.tsx
index 7a497d9aa..5b525d92b 100644
--- a/packages/editor/lite-text-editor/src/ui/index.tsx
+++ b/packages/editor/lite-text-editor/src/ui/index.tsx
@@ -1,8 +1,13 @@
-"use client"
-import * as React from 'react';
-import { EditorContainer, EditorContentWrapper, getEditorClassNames, useEditor } from '@plane/editor-core';
-import { FixedMenu } from './menus/fixed-menu';
-import { LiteTextEditorExtensions } from './extensions';
+"use client";
+import * as React from "react";
+import {
+ EditorContainer,
+ EditorContentWrapper,
+ getEditorClassNames,
+ useEditor,
+} from "@plane/editor-core";
+import { FixedMenu } from "./menus/fixed-menu";
+import { LiteTextEditorExtensions } from "./extensions";
export type UploadImage = (file: File) => Promise;
export type DeleteImage = (assetUrlWithWorkspaceId: string) => Promise;
@@ -16,19 +21,21 @@ interface ILiteTextEditor {
customClassName?: string;
editorContentCustomClassNames?: string;
onChange?: (json: any, html: string) => void;
- setIsSubmitting?: (isSubmitting: "submitting" | "submitted" | "saved") => void;
+ setIsSubmitting?: (
+ isSubmitting: "submitting" | "submitted" | "saved"
+ ) => void;
setShouldShowAlert?: (showAlert: boolean) => void;
forwardedRef?: any;
debouncedUpdatesEnabled?: boolean;
commentAccessSpecifier?: {
- accessValue: string,
- onAccessChange: (accessKey: string) => void,
- showAccessSpecifier: boolean,
+ accessValue: string;
+ onAccessChange: (accessKey: string) => void;
+ showAccessSpecifier: boolean;
commentAccess: {
- icon: string;
+ icon: any;
key: string;
label: "Private" | "Public";
- }[]
+ }[];
};
onEnterKeyPress?: (e?: any) => void;
}
@@ -56,7 +63,7 @@ const LiteTextEditor = ({
customClassName,
forwardedRef,
commentAccessSpecifier,
- onEnterKeyPress
+ onEnterKeyPress,
}: LiteTextEditorProps) => {
const editor = useEditor({
onChange,
@@ -70,25 +77,37 @@ const LiteTextEditor = ({
extensions: LiteTextEditorExtensions(onEnterKeyPress),
});
- const editorClassNames = getEditorClassNames({ noBorder, borderOnFocus, customClassName });
+ const editorClassNames = getEditorClassNames({
+ noBorder,
+ borderOnFocus,
+ customClassName,
+ });
if (!editor) return null;
return (
-
+
);
};
-const LiteTextEditorWithRef = React.forwardRef((props, ref) => (
-
-));
+const LiteTextEditorWithRef = React.forwardRef(
+ (props, ref) =>
+);
LiteTextEditorWithRef.displayName = "LiteTextEditorWithRef";
diff --git a/packages/editor/lite-text-editor/src/ui/menus/fixed-menu/index.tsx b/packages/editor/lite-text-editor/src/ui/menus/fixed-menu/index.tsx
index 72a537e7e..a42421b04 100644
--- a/packages/editor/lite-text-editor/src/ui/menus/fixed-menu/index.tsx
+++ b/packages/editor/lite-text-editor/src/ui/menus/fixed-menu/index.tsx
@@ -1,7 +1,19 @@
import { Editor } from "@tiptap/react";
-import { BoldIcon } from "lucide-react";
+import { BoldIcon, LucideIcon } from "lucide-react";
-import { BoldItem, BulletListItem, cn, CodeItem, ImageItem, ItalicItem, NumberedListItem, QuoteItem, StrikeThroughItem, TableItem, UnderLineItem } from "@plane/editor-core";
+import {
+ BoldItem,
+ BulletListItem,
+ cn,
+ CodeItem,
+ ImageItem,
+ ItalicItem,
+ NumberedListItem,
+ QuoteItem,
+ StrikeThroughItem,
+ TableItem,
+ UnderLineItem,
+} from "@plane/editor-core";
import { Icon } from "./icon";
import { Tooltip } from "../../tooltip";
import { UploadImage } from "../..";
@@ -16,18 +28,22 @@ export interface BubbleMenuItem {
type EditorBubbleMenuProps = {
editor: Editor;
commentAccessSpecifier?: {
- accessValue: string,
- onAccessChange: (accessKey: string) => void,
- showAccessSpecifier: boolean,
- commentAccess: {
- icon: string;
- key: string;
- label: "Private" | "Public";
- }[] | undefined;
- }
+ accessValue: string;
+ onAccessChange: (accessKey: string) => void;
+ showAccessSpecifier: boolean;
+ commentAccess:
+ | {
+ icon: any;
+ key: string;
+ label: "Private" | "Public";
+ }[]
+ | undefined;
+ };
uploadFile: UploadImage;
- setIsSubmitting?: (isSubmitting: "submitting" | "submitted" | "saved") => void;
-}
+ setIsSubmitting?: (
+ isSubmitting: "submitting" | "submitted" | "saved"
+ ) => void;
+};
export const FixedMenu = (props: EditorBubbleMenuProps) => {
const basicMarkItems: BubbleMenuItem[] = [
@@ -56,31 +72,33 @@ export const FixedMenu = (props: EditorBubbleMenuProps) => {
props.commentAccessSpecifier?.onAccessChange(accessKey);
};
-
return (
-
- {props.commentAccessSpecifier && (
- {props?.commentAccessSpecifier.commentAccess?.map((access) => (
-
-
@@ -324,7 +308,7 @@ export const FiltersList: React.FC = ({
})
}
>
-
+
)}
@@ -338,7 +322,7 @@ export const FiltersList: React.FC = ({
className="flex items-center gap-x-1 rounded-full border border-custom-border-200 bg-custom-background-80 px-3 py-1.5 text-xs"
>
Clear all filters
-
+
)}
diff --git a/web/components/core/filters/issues-view-filter.tsx b/web/components/core/filters/issues-view-filter.tsx
index 91fd564fd..d090f569b 100644
--- a/web/components/core/filters/issues-view-filter.tsx
+++ b/web/components/core/filters/issues-view-filter.tsx
@@ -14,14 +14,7 @@ import { SelectFilters } from "components/views";
import { CustomMenu } from "components/ui";
import { ToggleSwitch, Tooltip } from "@plane/ui";
// icons
-import { ChevronDownIcon } from "@heroicons/react/24/outline";
-import {
- CalendarMonthOutlined,
- FormatListBulletedOutlined,
- GridViewOutlined,
- TableChartOutlined,
- WaterfallChartOutlined,
-} from "@mui/icons-material";
+import { CalendarDays, ChevronDown, GanttChart, Kanban, List, Sheet } from "lucide-react";
// helpers
import { replaceUnderscoreIfSnakeCase } from "helpers/string.helper";
import { checkIfArraysHaveSameElements } from "helpers/array.helper";
@@ -33,34 +26,34 @@ import { ISSUE_GROUP_BY_OPTIONS, ISSUE_ORDER_BY_OPTIONS, ISSUE_FILTER_OPTIONS }
const issueViewOptions: { type: TIssueLayouts; Icon: any }[] = [
{
type: "list",
- Icon: FormatListBulletedOutlined,
+ Icon: List,
},
{
type: "kanban",
- Icon: GridViewOutlined,
+ Icon: Kanban,
},
{
type: "calendar",
- Icon: CalendarMonthOutlined,
+ Icon: CalendarDays,
},
{
type: "spreadsheet",
- Icon: TableChartOutlined,
+ Icon: Sheet,
},
{
type: "gantt_chart",
- Icon: WaterfallChartOutlined,
+ Icon: GanttChart,
},
];
const issueViewForDraftIssues: { type: TIssueLayouts; Icon: any }[] = [
{
type: "list",
- Icon: FormatListBulletedOutlined,
+ Icon: List,
},
{
type: "kanban",
- Icon: GridViewOutlined,
+ Icon: Kanban,
},
];
@@ -96,12 +89,7 @@ export const IssuesFilterView: React.FC = () => {
}`}
onClick={() => setDisplayFilters({ layout: option.type })}
>
-
+
))}
@@ -177,7 +165,7 @@ export const IssuesFilterView: React.FC = () => {
}`}
>
Display
-
+
= (props) => {
})
}
>
-
+
);
@@ -108,7 +108,7 @@ export const WorkspaceFiltersList: FC = (props) => {
})
}
>
-
+
))
@@ -130,7 +130,7 @@ export const WorkspaceFiltersList: FC = (props) => {
})
}
>
-
+
);
@@ -154,7 +154,7 @@ export const WorkspaceFiltersList: FC = (props) => {
})
}
>
-
+
);
@@ -178,7 +178,7 @@ export const WorkspaceFiltersList: FC = (props) => {
})
}
>
-
+
);
@@ -213,7 +213,7 @@ export const WorkspaceFiltersList: FC = (props) => {
})
}
>
- = (props) => {
})
}
>
-
+
);
@@ -274,7 +274,7 @@ export const WorkspaceFiltersList: FC = (props) => {
})
}
>
-
+
);
@@ -296,7 +296,7 @@ export const WorkspaceFiltersList: FC = (props) => {
})
}
>
-
+
);
@@ -310,7 +310,7 @@ export const WorkspaceFiltersList: FC = (props) => {
})
}
>
-
+
@@ -325,7 +325,7 @@ export const WorkspaceFiltersList: FC = (props) => {
})
}
>
-
+
)}
@@ -339,7 +339,7 @@ export const WorkspaceFiltersList: FC = (props) => {
className="flex items-center gap-x-1 rounded-full border border-custom-border-200 bg-custom-background-80 px-3 py-1.5 text-xs"
>
Clear all filters
-
+
)}
diff --git a/web/components/core/modals/bulk-delete-issues-modal.tsx b/web/components/core/modals/bulk-delete-issues-modal.tsx
index a751657c6..188ddfa30 100644
--- a/web/components/core/modals/bulk-delete-issues-modal.tsx
+++ b/web/components/core/modals/bulk-delete-issues-modal.tsx
@@ -11,10 +11,9 @@ import { IssueService } from "services/issue";
import useToast from "hooks/use-toast";
import useIssuesView from "hooks/use-issues-view";
// ui
-import { Button } from "@plane/ui";
+import { Button, LayersIcon } from "@plane/ui";
// icons
-import { MagnifyingGlassIcon } from "@heroicons/react/24/outline";
-import { LayerDiagonalIcon } from "components/icons";
+import { Search } from "lucide-react";
// types
import { IUser, IIssue } from "types";
// fetch keys
@@ -170,7 +169,7 @@ export const BulkDeleteIssuesModal: React.FC = ({ isOpen, setIsOpen, user
}}
>
-
@@ -228,7 +227,7 @@ export const BulkDeleteIssuesModal: React.FC
= ({ isOpen, setIsOpen, user
) : (
-
+
No issues found. Create a new issue with{" "}
C
.
diff --git a/web/components/core/modals/existing-issues-list-modal.tsx b/web/components/core/modals/existing-issues-list-modal.tsx
index 57231f241..799968791 100644
--- a/web/components/core/modals/existing-issues-list-modal.tsx
+++ b/web/components/core/modals/existing-issues-list-modal.tsx
@@ -13,11 +13,9 @@ import useToast from "hooks/use-toast";
import useIssuesView from "hooks/use-issues-view";
import useDebounce from "hooks/use-debounce";
// ui
-import { Button, Loader, ToggleSwitch, Tooltip } from "@plane/ui";
+import { Button, LayersIcon, Loader, ToggleSwitch, Tooltip } from "@plane/ui";
// icons
-import { LaunchOutlined } from "@mui/icons-material";
-import { MagnifyingGlassIcon, XMarkIcon } from "@heroicons/react/24/outline";
-import { LayerDiagonalIcon } from "components/icons";
+import { Rocket, Search, X } from "lucide-react";
// types
import { ISearchIssueResponse, TProjectIssuesSearchParams } from "types";
// fetch-keys
@@ -153,7 +151,7 @@ export const ExistingIssuesListModal: React.FC = ({
}}
>
-
@@ -179,7 +177,7 @@ export const ExistingIssuesListModal: React.FC
= ({
className="group p-1"
onClick={() => setSelectedIssues((prevData) => prevData.filter((i) => i.id !== issue.id))}
>
-
+
))}
@@ -227,7 +225,7 @@ export const ExistingIssuesListModal: React.FC = ({
{!isSearching && issues.length === 0 && searchTerm !== "" && debouncedSearchTerm !== "" && (
-
+
No issues found. Create a new issue with{" "}
C
.
@@ -279,11 +277,7 @@ export const ExistingIssuesListModal: React.FC = ({
rel="noopener noreferrer"
onClick={(e) => e.stopPropagation()}
>
-
+
);
diff --git a/web/components/core/modals/image-upload-modal.tsx b/web/components/core/modals/image-upload-modal.tsx
index 84f4b03b6..5fa66ef7a 100644
--- a/web/components/core/modals/image-upload-modal.tsx
+++ b/web/components/core/modals/image-upload-modal.tsx
@@ -13,7 +13,7 @@ import useWorkspaceDetails from "hooks/use-workspace-details";
// ui
import { Button } from "@plane/ui";
// icons
-import { UserCircleIcon } from "components/icons";
+import { UserCircle2 } from "lucide-react";
type Props = {
value?: string | null;
@@ -159,7 +159,7 @@ export const ImageUploadModal: React.FC = ({
>
) : (
-
+
{isDragActive ? "Drop image here to upload" : "Drag & drop image here"}
diff --git a/web/components/core/reaction-selector.tsx b/web/components/core/reaction-selector.tsx
index 6676b0be8..d988b9539 100644
--- a/web/components/core/reaction-selector.tsx
+++ b/web/components/core/reaction-selector.tsx
@@ -3,7 +3,7 @@ import { Popover, Transition } from "@headlessui/react";
// helper
import { renderEmoji } from "helpers/emoji.helper";
// icons
-import { Icon } from "components/ui";
+import { SmilePlus } from "lucide-react";
const reactionEmojis = ["128077", "128078", "128516", "128165", "128533", "129505", "9992", "128064"];
@@ -31,7 +31,7 @@ export const ReactionSelector: React.FC
= (props) => {
size === "sm" ? "w-6 h-6" : size === "md" ? "w-7 h-7" : "w-8 h-8"
}`}
>
-
+
= ({
- links,
- handleDeleteLink,
- handleEditLink,
- userAuth,
-}) => {
+export const LinksList: React.FC = ({ links, handleDeleteLink, handleEditLink, userAuth }) => {
const isNotAllowed = userAuth.isGuest || userAuth.isViewer;
return (
@@ -32,7 +27,7 @@ export const LinksList: React.FC = ({
className="grid h-7 w-7 place-items-center rounded bg-custom-background-90 p-1 outline-none hover:bg-custom-background-80"
onClick={() => handleEditLink(link)}
>
-
+
= ({
rel="noopener noreferrer"
className="grid h-7 w-7 place-items-center rounded bg-custom-background-90 p-1 outline-none hover:bg-custom-background-80"
>
-
+
handleDeleteLink(link.id)}
>
-
+
)}
diff --git a/web/components/core/theme/color-picker-input.tsx b/web/components/core/theme/color-picker-input.tsx
index acafe93ae..331008c47 100644
--- a/web/components/core/theme/color-picker-input.tsx
+++ b/web/components/core/theme/color-picker-input.tsx
@@ -16,7 +16,7 @@ import { ColorResult, SketchPicker } from "react-color";
import { Popover, Transition } from "@headlessui/react";
import { Input } from "@plane/ui";
// icons
-import { ColorPickerIcon } from "components/icons";
+import { Palette } from "lucide-react";
// types
import { ICustomTheme } from "types";
@@ -98,7 +98,7 @@ export const ColorPickerInput: FC = (props) => {
}}
/>
) : (
-
+
)}
diff --git a/web/components/core/views/spreadsheet-view/issue-column/issue-column.tsx b/web/components/core/views/spreadsheet-view/issue-column/issue-column.tsx
index 7d93f8098..dca055f61 100644
--- a/web/components/core/views/spreadsheet-view/issue-column/issue-column.tsx
+++ b/web/components/core/views/spreadsheet-view/issue-column/issue-column.tsx
@@ -5,8 +5,7 @@ import { useRouter } from "next/router";
// components
import { Popover2 } from "@blueprintjs/popover2";
// icons
-import { Icon } from "components/ui";
-import { EllipsisHorizontalIcon, LinkIcon, PencilIcon, TrashIcon } from "@heroicons/react/24/outline";
+import { MoreHorizontal, LinkIcon, Pencil, Trash2, ChevronRight } from "lucide-react";
// hooks
import useToast from "hooks/use-toast";
// types
@@ -100,7 +99,7 @@ export const IssueColumn: React.FC = ({
}}
>
@@ -114,7 +113,7 @@ export const IssueColumn: React.FC = ({
}}
>
-
+
Delete issue
@@ -136,7 +135,7 @@ export const IssueColumn: React.FC = ({
}
placement="bottom-start"
>
-
+
)}
@@ -148,7 +147,7 @@ export const IssueColumn: React.FC = ({
className="h-5 w-5 hover:bg-custom-background-90 hover:text-custom-text-100 rounded-sm cursor-pointer"
onClick={() => handleToggleExpand(issue.id)}
>
-
+
)}
diff --git a/web/components/core/views/spreadsheet-view/single-issue.tsx b/web/components/core/views/spreadsheet-view/single-issue.tsx
index b06ffad1b..0c1ac8744 100644
--- a/web/components/core/views/spreadsheet-view/single-issue.tsx
+++ b/web/components/core/views/spreadsheet-view/single-issue.tsx
@@ -7,8 +7,7 @@ import { ViewDueDateSelect, ViewEstimateSelect, ViewStartDateSelect } from "comp
import { LabelSelect, MembersSelect, PrioritySelect } from "components/project";
import { StateSelect } from "components/states";
// icons
-import { Icon } from "components/ui";
-import { EllipsisHorizontalIcon, LinkIcon, PencilIcon, TrashIcon } from "@heroicons/react/24/outline";
+import { MoreHorizontal, LinkIcon, Pencil, Trash2, ChevronRight } from "lucide-react";
// services
import { IssueService } from "services/issue";
import { TrackEventService } from "services/track_event.service";
@@ -281,7 +280,7 @@ export const SingleSpreadsheetIssue: FC = (props) => {
}}
>
@@ -295,7 +294,7 @@ export const SingleSpreadsheetIssue: FC = (props) => {
}}
>
-
+
Delete issue
@@ -317,7 +316,7 @@ export const SingleSpreadsheetIssue: FC = (props) => {
}
placement="bottom-start"
>
-
+
)}
@@ -329,7 +328,7 @@ export const SingleSpreadsheetIssue: FC = (props) => {
className="h-5 w-5 hover:bg-custom-background-90 hover:text-custom-text-100 rounded-sm cursor-pointer"
onClick={() => handleToggleExpand(issue.id)}
>
-
+
)}
diff --git a/web/components/core/views/spreadsheet-view/spreadsheet-view.tsx b/web/components/core/views/spreadsheet-view/spreadsheet-view.tsx
index f2900cf96..707340c64 100644
--- a/web/components/core/views/spreadsheet-view/spreadsheet-view.tsx
+++ b/web/components/core/views/spreadsheet-view/spreadsheet-view.tsx
@@ -18,13 +18,22 @@ import {
SpreadsheetStateColumn,
SpreadsheetUpdatedOnColumn,
} from "components/core";
-import { CustomMenu, Icon } from "components/ui";
+import { CustomMenu } from "components/ui";
import { IssuePeekOverview } from "components/issues";
import { Spinner } from "@plane/ui";
// types
import { IIssue, IIssueDisplayFilterOptions, IIssueDisplayProperties, TIssueOrderByOptions } from "types";
// icon
-import { CheckIcon, ChevronDownIcon, PlusIcon } from "lucide-react";
+import {
+ ArrowDownWideNarrow,
+ ArrowUpNarrowWide,
+ CheckIcon,
+ ChevronDownIcon,
+ Eraser,
+ ListFilter,
+ MoveRight,
+ PlusIcon,
+} from "lucide-react";
type Props = {
displayProperties: IIssueDisplayProperties;
@@ -98,11 +107,8 @@ export const SpreadsheetView: React.FC = observer((props) => {
}`}
>
{activeSortingProperty === propertyName && (
-
-
+
+
)}
@@ -127,32 +133,23 @@ export const SpreadsheetView: React.FC
= observer((props) => {
{propertyName === "assignee" || propertyName === "labels" ? (
<>
-
-
-
-
+
A
-
+
Z
>
) : propertyName === "due_date" || propertyName === "created_on" || propertyName === "updated_on" ? (
<>
-
-
-
-
+
New
-
+
Old
>
) : (
<>
-
-
-
-
+
First
-
+
Last
>
)}
@@ -184,32 +181,23 @@ export const SpreadsheetView: React.FC
= observer((props) => {
{propertyName === "assignee" || propertyName === "labels" ? (
<>
-
-
-
-
+
Z
-
+
A
>
) : propertyName === "due_date" ? (
<>
-
-
-
-
+
Old
-
+
New
>
) : (
<>
-
-
-
-
+
Last
-
+
First
>
)}
@@ -238,7 +226,7 @@ export const SpreadsheetView: React.FC
= observer((props) => {
-
+
Clear sorting
diff --git a/web/components/cycles/active-cycle-details.tsx b/web/components/cycles/active-cycle-details.tsx
index eb1fb8a09..1ececf4dc 100644
--- a/web/components/cycles/active-cycle-details.tsx
+++ b/web/components/cycles/active-cycle-details.tsx
@@ -10,25 +10,23 @@ import { useMobxStore } from "lib/mobx/store-provider";
// ui
import { AssigneesList } from "components/ui/avatar";
import { SingleProgressStats } from "components/core";
-import { Loader, Tooltip, LinearProgressIndicator } from "@plane/ui";
+import {
+ Loader,
+ Tooltip,
+ LinearProgressIndicator,
+ ContrastIcon,
+ RunningIcon,
+ LayersIcon,
+ StateGroupIcon,
+ PriorityIcon,
+} from "@plane/ui";
// components
import ProgressChart from "components/core/sidebar/progress-chart";
import { ActiveCycleProgressStats } from "components/cycles";
import { ViewIssueLabel } from "components/issues";
// icons
-import { CalendarDaysIcon } from "@heroicons/react/20/solid";
-import { PriorityIcon } from "components/icons/priority-icon";
-import {
- TargetIcon,
- ContrastIcon,
- PersonRunningIcon,
- ArrowRightIcon,
- TriangleExclamationIcon,
- AlarmClockIcon,
- LayerDiagonalIcon,
- StateGroupIcon,
-} from "components/icons";
-import { StarIcon } from "@heroicons/react/24/outline";
+import { AlarmClock, AlertTriangle, ArrowRight, CalendarDays, Star, Target } from "lucide-react";
+
// helpers
import { getDateRangeStatus, renderShortDateWithYearFormat, findHowManyDaysLeft } from "helpers/date-time.helper";
import { truncateText } from "helpers/string.helper";
@@ -229,12 +227,12 @@ export const ActiveCycleDetails: React.FC
= (props) => {
>
{cycleStatus === "current" ? (
-
+
{findHowManyDaysLeft(cycle.end_date ?? new Date())} Days Left
) : cycleStatus === "upcoming" ? (
-
+
{findHowManyDaysLeft(cycle.start_date ?? new Date())} Days Left
) : cycleStatus === "completed" ? (
@@ -246,7 +244,7 @@ export const ActiveCycleDetails: React.FC = (props) => {
}`}
>
-
+
)}{" "}
@@ -262,7 +260,7 @@ export const ActiveCycleDetails: React.FC = (props) => {
handleRemoveFromFavorites(e);
}}
>
-
+
) : (
= (props) => {
handleAddToFavorites(e);
}}
>
-
+
)}
@@ -278,12 +276,12 @@ export const ActiveCycleDetails: React.FC = (props) => {
-
+
{renderShortDateWithYearFormat(startDate)}
-
+
-
+
{renderShortDateWithYearFormat(endDate)}
@@ -315,7 +313,7 @@ export const ActiveCycleDetails: React.FC = (props) => {
-
+
{cycle.total_issues} issues
@@ -468,7 +466,7 @@ export const ActiveCycleDetails: React.FC = (props) => {
-
+
Pending Issues - {cycle.total_issues - (cycle.completed_issues + cycle.cancelled_issues)}
diff --git a/web/components/cycles/cycles-board-card.tsx b/web/components/cycles/cycles-board-card.tsx
index c39dedb78..ff5e28eef 100644
--- a/web/components/cycles/cycles-board-card.tsx
+++ b/web/components/cycles/cycles-board-card.tsx
@@ -12,18 +12,20 @@ import { CycleDeleteModal } from "./cycle-delete-modal";
// ui
import { CustomMenu } from "components/ui";
import { AssigneesList } from "components/ui/avatar";
-import { Tooltip, LinearProgressIndicator } from "@plane/ui";
+import { Tooltip, LinearProgressIndicator, ContrastIcon, RunningIcon } from "@plane/ui";
// icons
-import { CalendarDaysIcon } from "@heroicons/react/20/solid";
import {
- TargetIcon,
- ContrastIcon,
- PersonRunningIcon,
- ArrowRightIcon,
- TriangleExclamationIcon,
- AlarmClockIcon,
-} from "components/icons";
-import { ChevronDownIcon, LinkIcon, PencilIcon, StarIcon, TrashIcon } from "@heroicons/react/24/outline";
+ AlarmClock,
+ AlertTriangle,
+ ArrowRight,
+ CalendarDays,
+ ChevronDown,
+ LinkIcon,
+ Pencil,
+ Star,
+ Target,
+ Trash2,
+} from "lucide-react";
// helpers
import { getDateRangeStatus, renderShortDateWithYearFormat, findHowManyDaysLeft } from "helpers/date-time.helper";
import { copyTextToClipboard, truncateText } from "helpers/string.helper";
@@ -202,12 +204,12 @@ export const CyclesBoardCard: FC
= (props) => {
>
{cycleStatus === "current" ? (
-
+
{findHowManyDaysLeft(cycle.end_date ?? new Date())} Days Left
) : cycleStatus === "upcoming" ? (
-
+
{findHowManyDaysLeft(cycle.start_date ?? new Date())} Days Left
) : cycleStatus === "completed" ? (
@@ -219,7 +221,7 @@ export const CyclesBoardCard: FC = (props) => {
}`}
>
-
+
)}{" "}
@@ -231,11 +233,11 @@ export const CyclesBoardCard: FC = (props) => {
{cycle.is_favorite ? (
-
+
) : (
-
+
)}
@@ -244,12 +246,12 @@ export const CyclesBoardCard: FC = (props) => {
{cycleStatus !== "draft" && (
<>
-
+
{renderShortDateWithYearFormat(startDate)}
-
+
-
+
{renderShortDateWithYearFormat(endDate)}
>
@@ -298,7 +300,7 @@ export const CyclesBoardCard: FC = (props) => {
}}
className="cursor-pointer rounded p-1 text-custom-text-200 duration-300 hover:bg-custom-background-80"
>
-
+
)}
@@ -311,7 +313,7 @@ export const CyclesBoardCard: FC = (props) => {
}}
>
-
+
Delete cycle
@@ -375,7 +377,7 @@ export const CyclesBoardCard: FC = (props) => {
-
+
diff --git a/web/components/cycles/cycles-list-item.tsx b/web/components/cycles/cycles-list-item.tsx
index 16f129b74..1941dcf24 100644
--- a/web/components/cycles/cycles-list-item.tsx
+++ b/web/components/cycles/cycles-list-item.tsx
@@ -6,26 +6,26 @@ import useToast from "hooks/use-toast";
import { CycleCreateEditModal } from "./cycle-create-edit-modal";
import { CycleDeleteModal } from "./cycle-delete-modal";
// ui
-import { RadialProgressBar, Tooltip, LinearProgressIndicator } from "@plane/ui";
+import { RadialProgressBar, Tooltip, LinearProgressIndicator, ContrastIcon, RunningIcon } from "@plane/ui";
import { CustomMenu } from "components/ui";
// icons
-import { CalendarDaysIcon } from "@heroicons/react/20/solid";
import {
- TargetIcon,
- ContrastIcon,
- PersonRunningIcon,
- ArrowRightIcon,
- TriangleExclamationIcon,
- AlarmClockIcon,
-} from "components/icons";
-// hooks
-import { useMobxStore } from "lib/mobx/store-provider";
-import { LinkIcon, PencilIcon, StarIcon, TrashIcon } from "@heroicons/react/24/outline";
+ AlarmClock,
+ AlertTriangle,
+ ArrowRight,
+ CalendarDays,
+ LinkIcon,
+ Pencil,
+ Star,
+ Target,
+ Trash2,
+} from "lucide-react";
// helpers
import { getDateRangeStatus, renderShortDateWithYearFormat, findHowManyDaysLeft } from "helpers/date-time.helper";
import { copyTextToClipboard } from "helpers/string.helper";
// types
import { ICycle } from "types";
+import { useMobxStore } from "lib/mobx/store-provider";
type TCyclesListItem = {
cycle: ICycle;
@@ -188,12 +188,12 @@ export const CyclesListItem: FC = (props) => {
>
{cycleStatus === "current" ? (
-
+
{findHowManyDaysLeft(cycle.end_date ?? new Date())} days left
) : cycleStatus === "upcoming" ? (
-
+
{findHowManyDaysLeft(cycle.start_date ?? new Date())} days left
) : cycleStatus === "completed" ? (
@@ -205,7 +205,7 @@ export const CyclesListItem: FC = (props) => {
}`}
>
-
+
)}{" "}
@@ -220,14 +220,14 @@ export const CyclesListItem: FC = (props) => {
{cycleStatus !== "draft" && (
-
+
{renderShortDateWithYearFormat(startDate)}
-
+
-
+
{renderShortDateWithYearFormat(endDate)}
@@ -306,11 +306,11 @@ export const CyclesListItem: FC = (props) => {
{/* cycle favorite */}
{cycle.is_favorite ? (
-
+
) : (
-
+
)}
@@ -323,7 +323,7 @@ export const CyclesListItem: FC
= (props) => {
{!isCompleted && (
setUpdateModal(true)}>
-
+
Edit Cycle
@@ -332,7 +332,7 @@ export const CyclesListItem: FC = (props) => {
{!isCompleted && (
setDeleteModal(true)}>
-
+
Delete cycle
diff --git a/web/components/cycles/gantt-chart/blocks.tsx b/web/components/cycles/gantt-chart/blocks.tsx
index bb8330cb6..99a1d25e5 100644
--- a/web/components/cycles/gantt-chart/blocks.tsx
+++ b/web/components/cycles/gantt-chart/blocks.tsx
@@ -1,9 +1,7 @@
import { useRouter } from "next/router";
// ui
-import { Tooltip } from "@plane/ui";
-// icons
-import { ContrastIcon } from "components/icons";
+import { Tooltip, ContrastIcon } from "@plane/ui";
// helpers
import { getDateRangeStatus, renderShortDate } from "helpers/date-time.helper";
// types
diff --git a/web/components/cycles/select.tsx b/web/components/cycles/select.tsx
index 3bd10eae7..966106573 100644
--- a/web/components/cycles/select.tsx
+++ b/web/components/cycles/select.tsx
@@ -4,8 +4,8 @@ import useSWR from "swr";
import useUserAuth from "hooks/use-user-auth";
import { Listbox, Transition } from "@headlessui/react";
// icons
-import { PlusIcon } from "@heroicons/react/24/outline";
-import { CyclesIcon } from "components/icons";
+import { ContrastIcon } from "@plane/ui";
+import { Plus } from "lucide-react";
// services
import { CycleService } from "services/cycle.service";
// components
@@ -57,7 +57,7 @@ export const CycleSelect: React.FC = ({ projectId, value,
-
+
{cycles?.find((c) => c.id === value)?.name ?? "Cycles"}
@@ -104,7 +104,7 @@ export const CycleSelect: React.FC = ({ projectId, value,
className="relative w-full flex select-none items-center gap-x-2 p-2 text-gray-400 hover:bg-indigo-50 hover:text-custom-text-100"
onClick={openCycleModal}
>
-
+
Create cycle
diff --git a/web/components/cycles/sidebar.tsx b/web/components/cycles/sidebar.tsx
index 2872fd122..0073cfef1 100644
--- a/web/components/cycles/sidebar.tsx
+++ b/web/components/cycles/sidebar.tsx
@@ -17,16 +17,16 @@ import { CustomMenu, CustomRangeDatePicker } from "components/ui";
import { Loader, ProgressBar } from "@plane/ui";
// icons
import {
- CalendarDaysIcon,
- ChartPieIcon,
- ArrowLongRightIcon,
- TrashIcon,
- UserCircleIcon,
- ChevronDownIcon,
- DocumentIcon,
+ CalendarDays,
+ ChevronDown,
+ File,
+ MoveRight,
LinkIcon,
-} from "@heroicons/react/24/outline";
-import { ExclamationIcon } from "components/icons";
+ PieChart,
+ Trash2,
+ UserCircle2,
+ AlertCircle,
+} from "lucide-react";
// helpers
import { capitalizeFirstLetter, copyTextToClipboard } from "helpers/string.helper";
import { isDateGreaterThanToday, renderDateFormat, renderShortDateWithYearFormat } from "helpers/date-time.helper";
@@ -299,7 +299,7 @@ export const CycleDetailsSidebar: React.FC = ({ cycle, isOpen, cycleStatu
cycle.start_date ? "" : "text-custom-text-200"
}`}
>
-
+
{renderShortDateWithYearFormat(
new Date(`${watch("start_date") ? watch("start_date") : cycle?.start_date}`),
@@ -336,7 +336,7 @@ export const CycleDetailsSidebar: React.FC = ({ cycle, isOpen, cycleStatu
)}
-
+
{({}) => (
@@ -347,7 +347,7 @@ export const CycleDetailsSidebar: React.FC = ({ cycle, isOpen, cycleStatu
cycle.end_date ? "" : "text-custom-text-200"
}`}
>
-
+
{renderShortDateWithYearFormat(
@@ -397,7 +397,7 @@ export const CycleDetailsSidebar: React.FC = ({ cycle, isOpen, cycleStatu
{!isCompleted && (
setCycleDeleteModal(true)}>
-
+
Delete
@@ -419,7 +419,7 @@ export const CycleDetailsSidebar: React.FC = ({ cycle, isOpen, cycleStatu
-
+
Lead
@@ -443,7 +443,7 @@ export const CycleDetailsSidebar: React.FC
= ({ cycle, isOpen, cycleStatu
@@ -474,14 +474,11 @@ export const CycleDetailsSidebar: React.FC
= ({ cycle, isOpen, cycleStatu
{isStartValid && isEndValid ? (
-
+
) : (
-
+
{cycleStatus === "upcoming"
? "Cycle is yet to start."
@@ -497,7 +494,7 @@ export const CycleDetailsSidebar: React.FC = ({ cycle, isOpen, cycleStatu
-
+
Pending Issues -{" "}
@@ -545,14 +542,11 @@ export const CycleDetailsSidebar: React.FC = ({ cycle, isOpen, cycleStatu
{cycle.total_issues > 0 ? (
-
+
) : (
-
+
No issues found. Please add issue.
diff --git a/web/components/cycles/single-cycle-card.tsx b/web/components/cycles/single-cycle-card.tsx
index 95f065056..0747b5bf9 100644
--- a/web/components/cycles/single-cycle-card.tsx
+++ b/web/components/cycles/single-cycle-card.tsx
@@ -10,20 +10,22 @@ import useToast from "hooks/use-toast";
// components
import { SingleProgressStats } from "components/core";
// ui
-import { Tooltip, LinearProgressIndicator } from "@plane/ui";
+import { Tooltip, LinearProgressIndicator, ContrastIcon, RunningIcon } from "@plane/ui";
import { CustomMenu } from "components/ui";
import { AssigneesList } from "components/ui/avatar";
// icons
-import { CalendarDaysIcon } from "@heroicons/react/20/solid";
import {
- TargetIcon,
- ContrastIcon,
- PersonRunningIcon,
- ArrowRightIcon,
- TriangleExclamationIcon,
- AlarmClockIcon,
-} from "components/icons";
-import { ChevronDownIcon, LinkIcon, PencilIcon, StarIcon, TrashIcon } from "@heroicons/react/24/outline";
+ AlarmClock,
+ AlertTriangle,
+ ArrowRight,
+ CalendarDays,
+ ChevronDown,
+ LinkIcon,
+ Pencil,
+ Star,
+ Target,
+ Trash2,
+} from "lucide-react";
// helpers
import { getDateRangeStatus, renderShortDateWithYearFormat, findHowManyDaysLeft } from "helpers/date-time.helper";
import { copyTextToClipboard, truncateText } from "helpers/string.helper";
@@ -155,12 +157,12 @@ export const SingleCycleCard: React.FC
= ({
>
{cycleStatus === "current" ? (
-
+
{findHowManyDaysLeft(cycle.end_date ?? new Date())} Days Left
) : cycleStatus === "upcoming" ? (
-
+
{findHowManyDaysLeft(cycle.start_date ?? new Date())} Days Left
) : cycleStatus === "completed" ? (
@@ -172,7 +174,7 @@ export const SingleCycleCard: React.FC = ({
}`}
>
-
+
)}{" "}
@@ -189,7 +191,7 @@ export const SingleCycleCard: React.FC = ({
handleRemoveFromFavorites();
}}
>
-
+
) : (
= ({
handleAddToFavorites();
}}
>
-
+
)}
@@ -207,12 +209,12 @@ export const SingleCycleCard: React.FC = ({
{cycleStatus !== "draft" && (
<>
-
+
{renderShortDateWithYearFormat(startDate)}
-
+
-
+
{renderShortDateWithYearFormat(endDate)}
>
@@ -261,7 +263,7 @@ export const SingleCycleCard: React.FC = ({
}}
className="cursor-pointer rounded p-1 text-custom-text-200 duration-300 hover:bg-custom-background-80"
>
-
+
)}
@@ -274,7 +276,7 @@ export const SingleCycleCard: React.FC = ({
}}
>
-
+
Delete cycle
@@ -338,7 +340,7 @@ export const SingleCycleCard: React.FC = ({
-
+
diff --git a/web/components/cycles/single-cycle-list.tsx b/web/components/cycles/single-cycle-list.tsx
index 5f0aaca2d..b039c7005 100644
--- a/web/components/cycles/single-cycle-list.tsx
+++ b/web/components/cycles/single-cycle-list.tsx
@@ -7,18 +7,19 @@ import { useRouter } from "next/router";
import useToast from "hooks/use-toast";
// ui
import { CustomMenu } from "components/ui";
-import { Tooltip, LinearProgressIndicator } from "@plane/ui";
+import { Tooltip, LinearProgressIndicator, ContrastIcon, RunningIcon } from "@plane/ui";
// icons
-import { CalendarDaysIcon } from "@heroicons/react/20/solid";
import {
- TargetIcon,
- ContrastIcon,
- PersonRunningIcon,
- ArrowRightIcon,
- TriangleExclamationIcon,
- AlarmClockIcon,
-} from "components/icons";
-import { LinkIcon, PencilIcon, StarIcon, TrashIcon } from "@heroicons/react/24/outline";
+ AlarmClock,
+ AlertTriangle,
+ ArrowRight,
+ CalendarDays,
+ LinkIcon,
+ Pencil,
+ Star,
+ Target,
+ Trash2,
+} from "lucide-react";
// helpers
import { getDateRangeStatus, renderShortDateWithYearFormat, findHowManyDaysLeft } from "helpers/date-time.helper";
import { copyTextToClipboard, truncateText } from "helpers/string.helper";
@@ -190,12 +191,12 @@ export const SingleCycleList: React.FC = ({
>
{cycleStatus === "current" ? (
-
+
{findHowManyDaysLeft(cycle.end_date ?? new Date())} days left
) : cycleStatus === "upcoming" ? (
-
+
{findHowManyDaysLeft(cycle.start_date ?? new Date())} days left
) : cycleStatus === "completed" ? (
@@ -207,7 +208,7 @@ export const SingleCycleList: React.FC = ({
}`}
>
-
+
)}{" "}
@@ -221,12 +222,12 @@ export const SingleCycleList: React.FC = ({
{cycleStatus !== "draft" && (
-
+
{renderShortDateWithYearFormat(startDate)}
-
+
-
+
{renderShortDateWithYearFormat(endDate)}
@@ -305,7 +306,7 @@ export const SingleCycleList: React.FC = ({
handleRemoveFromFavorites();
}}
>
-
+
) : (
= ({
handleAddToFavorites();
}}
>
-
+
)}
@@ -327,7 +328,7 @@ export const SingleCycleList: React.FC
= ({
}}
>
-
+
Edit Cycle
@@ -340,7 +341,7 @@ export const SingleCycleList: React.FC = ({
}}
>
-
+
Delete cycle
diff --git a/web/components/cycles/transfer-issues-modal.tsx b/web/components/cycles/transfer-issues-modal.tsx
index 43f9595fc..28964551b 100644
--- a/web/components/cycles/transfer-issues-modal.tsx
+++ b/web/components/cycles/transfer-issues-modal.tsx
@@ -8,8 +8,8 @@ import { CycleService } from "services/cycle.service";
import useToast from "hooks/use-toast";
import useIssuesView from "hooks/use-issues-view";
//icons
-import { MagnifyingGlassIcon, XMarkIcon } from "@heroicons/react/24/outline";
-import { ContrastIcon, ExclamationIcon, TransferIcon } from "components/icons";
+import { ContrastIcon, TransferIcon } from "@plane/ui";
+import { AlertCircle, Search, X } from "lucide-react";
// fetch-key
import { CYCLE_ISSUES_WITH_PARAMS, INCOMPLETE_CYCLES_LIST } from "constants/fetch-keys";
// types
@@ -104,15 +104,15 @@ export const TransferIssuesModal: React.FC = ({ isOpen, handleClose }) =>
-
+
= ({ isOpen, handleClose }) =>
))
) : (
-
+
You don’t have any current cycle. Please create one to transfer the issues.
diff --git a/web/components/cycles/transfer-issues.tsx b/web/components/cycles/transfer-issues.tsx
index 8636df6ef..a4291f4c0 100644
--- a/web/components/cycles/transfer-issues.tsx
+++ b/web/components/cycles/transfer-issues.tsx
@@ -5,9 +5,9 @@ import { useRouter } from "next/router";
import useSWR from "swr";
// component
-import { Button } from "@plane/ui";
+import { Button, TransferIcon } from "@plane/ui";
// icon
-import { ExclamationIcon, TransferIcon } from "components/icons";
+import { AlertCircle } from "lucide-react";
// services
import { CycleService } from "services/cycle.service";
// fetch-key
@@ -36,7 +36,7 @@ export const TransferIssues: React.FC
= ({ handleClick }) => {
return (
-
+
Completed cycles are not editable.
diff --git a/web/components/estimates/delete-estimate-modal.tsx b/web/components/estimates/delete-estimate-modal.tsx
index ce5eb9db5..59f8e10be 100644
--- a/web/components/estimates/delete-estimate-modal.tsx
+++ b/web/components/estimates/delete-estimate-modal.tsx
@@ -6,7 +6,7 @@ import { Dialog, Transition } from "@headlessui/react";
import { IEstimate } from "types";
// icons
-import { ExclamationTriangleIcon } from "@heroicons/react/24/outline";
+import { AlertTriangle } from "lucide-react";
// ui
import { Button } from "@plane/ui";
@@ -59,7 +59,7 @@ export const DeleteEstimateModal: React.FC
= ({ isOpen, handleClose, data
-
+
Delete Estimate
diff --git a/web/components/estimates/single-estimate.tsx b/web/components/estimates/single-estimate.tsx
index dc5c43afe..1511259e9 100644
--- a/web/components/estimates/single-estimate.tsx
+++ b/web/components/estimates/single-estimate.tsx
@@ -13,7 +13,7 @@ import { DeleteEstimateModal } from "components/estimates";
import { Button } from "@plane/ui";
import { CustomMenu } from "components/ui";
//icons
-import { PencilIcon, TrashIcon } from "@heroicons/react/24/outline";
+import { Pencil, Trash2 } from "lucide-react";
// helpers
import { orderArrayBy } from "helpers/array.helper";
// types
@@ -89,7 +89,7 @@ export const SingleEstimate: React.FC = ({ user, estimate, editEstimate,
}}
>
@@ -100,7 +100,7 @@ export const SingleEstimate: React.FC = ({ user, estimate, editEstimate,
}}
>
-
+
Delete estimate
diff --git a/web/components/exporter/guide.tsx b/web/components/exporter/guide.tsx
index 893197f22..73e88874b 100644
--- a/web/components/exporter/guide.tsx
+++ b/web/components/exporter/guide.tsx
@@ -14,9 +14,8 @@ import { IntegrationService } from "services/integrations";
import { Exporter, SingleExport } from "components/exporter";
// ui
import { Button, Loader } from "@plane/ui";
-import { Icon } from "components/ui";
// icons
-import { ArrowPathIcon } from "@heroicons/react/24/outline";
+import { MoveLeft, MoveRight, RefreshCw } from "lucide-react";
// fetch-keys
import { EXPORT_SERVICES_LIST } from "constants/fetch-keys";
// constants
@@ -92,7 +91,7 @@ const IntegrationGuide = () => {
);
}}
>
- {" "}
+ {" "}
{refreshing ? "Refreshing..." : "Refresh status"}
@@ -106,7 +105,7 @@ const IntegrationGuide = () => {
: "cursor-not-allowed opacity-75"
}`}
>
-
+
Prev
{
}`}
>
Next
-
+
diff --git a/web/components/gantt-chart/chart/index.tsx b/web/components/gantt-chart/chart/index.tsx
index 184187674..bcee02ebc 100644
--- a/web/components/gantt-chart/chart/index.tsx
+++ b/web/components/gantt-chart/chart/index.tsx
@@ -2,7 +2,6 @@ import { FC, useEffect, useState } from "react";
// next
import { useRouter } from "next/router";
// icons
-import { ArrowsPointingInIcon, ArrowsPointingOutIcon } from "@heroicons/react/20/solid";
// components
import { GanttChartBlocks } from "components/gantt-chart";
import { GanttSidebar } from "../sidebar";
@@ -14,7 +13,7 @@ import { MonthChartView } from "./month";
// import { QuarterChartView } from "./quarter";
// import { YearChartView } from "./year";
// icons
-import { PlusIcon } from "lucide-react";
+import { Expand, PlusIcon, Shrink } from "lucide-react";
// views
import {
// generateHourChart,
@@ -275,11 +274,7 @@ export const ChartViewRoot: FC = ({
className="transition-all border border-custom-border-200 p-1 flex justify-center items-center cursor-pointer rounded-sm hover:bg-custom-background-80"
onClick={() => setFullScreenMode((prevData) => !prevData)}
>
- {fullScreenMode ? (
-
- ) : (
-
- )}
+ {fullScreenMode ? : }
diff --git a/web/components/gantt-chart/helpers/draggable.tsx b/web/components/gantt-chart/helpers/draggable.tsx
index 79dc2a72a..6f2cafe8e 100644
--- a/web/components/gantt-chart/helpers/draggable.tsx
+++ b/web/components/gantt-chart/helpers/draggable.tsx
@@ -1,7 +1,7 @@
import React, { useEffect, useRef, useState } from "react";
// icons
-import { Icon } from "components/ui";
+import { ArrowLeft, ArrowRight } from "lucide-react";
// hooks
import { useChart } from "../hooks";
// types
@@ -48,10 +48,7 @@ export const ChartDraggable: React.FC
= ({
const posFromLeft = e.clientX;
// manually scroll to left if reached the left end while dragging
- if (
- posFromLeft - (ganttContainer.getBoundingClientRect().left + ganttSidebar.clientWidth) <=
- SCROLL_THRESHOLD
- ) {
+ if (posFromLeft - (ganttContainer.getBoundingClientRect().left + ganttSidebar.clientWidth) <= SCROLL_THRESHOLD) {
if (e.movementX > 0) return 0;
delWidth = -5;
@@ -82,8 +79,7 @@ export const ChartDraggable: React.FC = ({
const columnWidth = currentViewData.data.width;
- const blockInitialWidth =
- resizableDiv.clientWidth ?? parseInt(block.position.width.toString(), 10);
+ const blockInitialWidth = resizableDiv.clientWidth ?? parseInt(block.position.width.toString(), 10);
let initialWidth = resizableDiv.clientWidth ?? parseInt(block.position.width.toString(), 10);
let initialMarginLeft = parseInt(resizableDiv.style.marginLeft);
@@ -116,9 +112,7 @@ export const ChartDraggable: React.FC = ({
document.removeEventListener("mousemove", handleMouseMove);
document.removeEventListener("mouseup", handleMouseUp);
- const totalBlockShifts = Math.ceil(
- (resizableDiv.clientWidth - blockInitialWidth) / columnWidth
- );
+ const totalBlockShifts = Math.ceil((resizableDiv.clientWidth - blockInitialWidth) / columnWidth);
handleBlock(totalBlockShifts, "left");
};
@@ -137,8 +131,7 @@ export const ChartDraggable: React.FC = ({
const columnWidth = currentViewData.data.width;
- const blockInitialWidth =
- resizableDiv.clientWidth ?? parseInt(block.position.width.toString(), 10);
+ const blockInitialWidth = resizableDiv.clientWidth ?? parseInt(block.position.width.toString(), 10);
let initialWidth = resizableDiv.clientWidth ?? parseInt(block.position.width.toString(), 10);
@@ -162,9 +155,7 @@ export const ChartDraggable: React.FC = ({
document.removeEventListener("mousemove", handleMouseMove);
document.removeEventListener("mouseup", handleMouseUp);
- const totalBlockShifts = Math.ceil(
- (resizableDiv.clientWidth - blockInitialWidth) / columnWidth
- );
+ const totalBlockShifts = Math.ceil((resizableDiv.clientWidth - blockInitialWidth) / columnWidth);
handleBlock(totalBlockShifts, "right");
};
@@ -254,7 +245,7 @@ export const ChartDraggable: React.FC = ({
className="fixed ml-1 mt-1.5 z-[1] h-8 w-8 grid place-items-center border border-custom-border-300 rounded cursor-pointer bg-custom-background-80 text-custom-text-200 hover:text-custom-text-100"
onClick={handleScrollToBlock}
>
-
+
)}
{/* move to right side hidden block button */}
@@ -263,7 +254,7 @@ export const ChartDraggable: React.FC = ({
className="fixed right-1 mt-1.5 z-[1] h-8 w-8 grid place-items-center border border-custom-border-300 rounded cursor-pointer bg-custom-background-80 text-custom-text-200 hover:text-custom-text-100"
onClick={handleScrollToBlock}
>
-
+
)}
= ({
>
)}
diff --git a/web/components/gantt-chart/sidebar.tsx b/web/components/gantt-chart/sidebar.tsx
index 7924467b0..86e086790 100644
--- a/web/components/gantt-chart/sidebar.tsx
+++ b/web/components/gantt-chart/sidebar.tsx
@@ -7,7 +7,7 @@ import { useChart } from "./hooks";
// ui
import { Loader } from "@plane/ui";
// icons
-import { EllipsisVerticalIcon } from "@heroicons/react/24/outline";
+import { MoreVertical } from "lucide-react";
// helpers
import { findTotalDaysInRange } from "helpers/date-time.helper";
// types
@@ -124,8 +124,8 @@ export const GanttSidebar: React.FC
= (props) => {
className="rounded p-0.5 text-custom-sidebar-text-200 flex flex-shrink-0 opacity-0 group-hover:opacity-100"
{...provided.dragHandleProps}
>
-
-
+
+
)}
diff --git a/web/components/headers/project-views.tsx b/web/components/headers/project-views.tsx
index 45f47e551..527402913 100644
--- a/web/components/headers/project-views.tsx
+++ b/web/components/headers/project-views.tsx
@@ -5,7 +5,7 @@ import { CreateUpdateProjectViewModal } from "components/views";
// ui
import { PrimaryButton } from "components/ui";
// icons
-import { PlusIcon } from "lucide-react";
+import { Plus } from "lucide-react";
export const ProjectViewsHeader = () => {
const [createViewModal, setCreateViewModal] = useState(false);
@@ -22,7 +22,7 @@ export const ProjectViewsHeader = () => {
document.dispatchEvent(e);
}}
>
-
+
Create View
diff --git a/web/components/inbox/filters-dropdown.tsx b/web/components/inbox/filters-dropdown.tsx
index cd7cf8093..dc5e627a8 100644
--- a/web/components/inbox/filters-dropdown.tsx
+++ b/web/components/inbox/filters-dropdown.tsx
@@ -6,7 +6,7 @@ import { useMobxStore } from "lib/mobx/store-provider";
// ui
import { MultiLevelDropdown } from "components/ui";
// icons
-import { PriorityIcon } from "components/icons";
+import { PriorityIcon } from "@plane/ui";
// types
import { IInboxFilterOptions } from "types";
// constants
diff --git a/web/components/inbox/filters-list.tsx b/web/components/inbox/filters-list.tsx
index 75657d47b..2f70db99d 100644
--- a/web/components/inbox/filters-list.tsx
+++ b/web/components/inbox/filters-list.tsx
@@ -4,8 +4,8 @@ import { observer } from "mobx-react-lite";
// mobx store
import { useMobxStore } from "lib/mobx/store-provider";
// icons
-import { XMarkIcon } from "@heroicons/react/24/outline";
-import { PriorityIcon } from "components/icons";
+import { X } from "lucide-react";
+import { PriorityIcon } from "@plane/ui";
// helpers
import { replaceUnderscoreIfSnakeCase } from "helpers/string.helper";
// types
@@ -97,7 +97,7 @@ export const InboxFiltersList = observer(() => {
})
}
>
-
+
))}
@@ -109,7 +109,7 @@ export const InboxFiltersList = observer(() => {
})
}
>
-
+
) : filterKey === "inbox_status" ? (
@@ -129,7 +129,7 @@ export const InboxFiltersList = observer(() => {
})
}
>
-
+
))}
@@ -141,7 +141,7 @@ export const InboxFiltersList = observer(() => {
})
}
>
-
+
) : (
@@ -158,7 +158,7 @@ export const InboxFiltersList = observer(() => {
className="flex items-center gap-x-1 rounded-full border border-custom-border-200 bg-custom-background-80 px-3 py-1.5 text-custom-text-200 hover:text-custom-text-100"
>
Clear all
-
+
);
diff --git a/web/components/inbox/issue-card.tsx b/web/components/inbox/issue-card.tsx
index a223e7c09..edaed1cd5 100644
--- a/web/components/inbox/issue-card.tsx
+++ b/web/components/inbox/issue-card.tsx
@@ -2,10 +2,9 @@ import { useRouter } from "next/router";
import Link from "next/link";
// ui
-import { Tooltip } from "@plane/ui";
+import { Tooltip, PriorityIcon } from "@plane/ui";
// icons
-import { PriorityIcon } from "components/icons";
-import { AlertTriangle, Calendar, CheckCircle2, Clock, Copy, XCircle } from "lucide-react";
+import { AlertTriangle, CalendarDays, CheckCircle2, Clock, Copy, XCircle } from "lucide-react";
// helpers
import { renderShortDateWithYearFormat } from "helpers/date-time.helper";
// types
@@ -64,7 +63,7 @@ export const InboxIssueCard: React.FC = (props) => {
tooltipContent={`${renderShortDateWithYearFormat(issue.created_at ?? "")}`}
>
-
+
{renderShortDateWithYearFormat(issue.created_at ?? "")}
diff --git a/web/components/inbox/modals/accept-issue-modal.tsx b/web/components/inbox/modals/accept-issue-modal.tsx
index 569061bdf..11ff416b2 100644
--- a/web/components/inbox/modals/accept-issue-modal.tsx
+++ b/web/components/inbox/modals/accept-issue-modal.tsx
@@ -2,7 +2,7 @@ import React, { useState } from "react";
import { Dialog, Transition } from "@headlessui/react";
// icons
-import { CheckCircleIcon } from "@heroicons/react/24/outline";
+import { CheckCircle } from "lucide-react";
// ui
import { Button } from "@plane/ui";
// types
@@ -59,7 +59,7 @@ export const AcceptIssueModal: React.FC = ({ isOpen, onClose, data, onSub
-
+
Accept Issue
diff --git a/web/components/inbox/modals/decline-issue-modal.tsx b/web/components/inbox/modals/decline-issue-modal.tsx
index 35309815f..50fccdd74 100644
--- a/web/components/inbox/modals/decline-issue-modal.tsx
+++ b/web/components/inbox/modals/decline-issue-modal.tsx
@@ -2,7 +2,7 @@ import React, { useState } from "react";
import { Dialog, Transition } from "@headlessui/react";
// icons
-import { ExclamationTriangleIcon } from "@heroicons/react/24/outline";
+import { AlertTriangle } from "lucide-react";
// ui
import { Button } from "@plane/ui";
// types
@@ -59,7 +59,7 @@ export const DeclineIssueModal: React.FC = ({ isOpen, onClose, data, onSu
-
+
Decline Issue
diff --git a/web/components/inbox/modals/delete-issue-modal.tsx b/web/components/inbox/modals/delete-issue-modal.tsx
index 65e23afcb..29129cd70 100644
--- a/web/components/inbox/modals/delete-issue-modal.tsx
+++ b/web/components/inbox/modals/delete-issue-modal.tsx
@@ -8,7 +8,7 @@ import { useMobxStore } from "lib/mobx/store-provider";
// hooks
import useToast from "hooks/use-toast";
// icons
-import { ExclamationTriangleIcon } from "@heroicons/react/24/outline";
+import { AlertTriangle } from "lucide-react";
// ui
import { Button } from "@plane/ui";
// types
@@ -96,7 +96,7 @@ export const DeleteInboxIssueModal: React.FC = observer(({ isOpen, onClos
-
+
Delete Issue
diff --git a/web/components/inbox/modals/select-duplicate.tsx b/web/components/inbox/modals/select-duplicate.tsx
index 11334d45d..ac0c63a95 100644
--- a/web/components/inbox/modals/select-duplicate.tsx
+++ b/web/components/inbox/modals/select-duplicate.tsx
@@ -8,10 +8,9 @@ import useToast from "hooks/use-toast";
// services
import { IssueService } from "services/issue";
// ui
-import { Button } from "@plane/ui";
+import { Button, LayersIcon } from "@plane/ui";
// icons
-import { MagnifyingGlassIcon } from "@heroicons/react/24/outline";
-import { LayerDiagonalIcon } from "components/icons";
+import { Search } from "lucide-react";
// fetch-keys
import { PROJECT_ISSUES_LIST } from "constants/fetch-keys";
@@ -103,7 +102,7 @@ export const SelectDuplicateInboxIssueModal: React.FC = (props) => {
}}
>
-
@@ -155,7 +154,7 @@ export const SelectDuplicateInboxIssueModal: React.FC
= (props) => {
) : (
-
+
No issues found. Create a new issue with{" "}
C
.
diff --git a/web/components/integration/delete-import-modal.tsx b/web/components/integration/delete-import-modal.tsx
index f9a9517d9..49f9e5c28 100644
--- a/web/components/integration/delete-import-modal.tsx
+++ b/web/components/integration/delete-import-modal.tsx
@@ -13,7 +13,7 @@ import useToast from "hooks/use-toast";
// ui
import { Button, Input } from "@plane/ui";
// icons
-import { ExclamationTriangleIcon } from "@heroicons/react/24/outline";
+import { AlertTriangle } from "lucide-react";
// types
import { IUser, IImporterService } from "types";
// fetch-keys
@@ -96,7 +96,7 @@ export const DeleteImportModal: React.FC = ({ isOpen, handleClose, data,
-
+
Delete Project
diff --git a/web/components/integration/github/root.tsx b/web/components/integration/github/root.tsx
index 0716a4768..6d0d7e6c2 100644
--- a/web/components/integration/github/root.tsx
+++ b/web/components/integration/github/root.tsx
@@ -21,8 +21,8 @@ import {
GithubImportConfirm,
} from "components/integration";
// icons
-import { CogIcon, CloudUploadIcon, UsersIcon, CheckIcon } from "components/icons";
-import { ArrowLeftIcon, ListBulletIcon } from "@heroicons/react/24/outline";
+import { UserGroupIcon } from "@plane/ui";
+import { ArrowLeft, Check, List, Settings, UploadCloud } from "lucide-react";
// images
import GithubLogo from "public/services/github.png";
// types
@@ -59,23 +59,23 @@ const integrationWorkflowData = [
{
title: "Configure",
key: "import-configure",
- icon: CogIcon,
+ icon: Settings,
},
{
title: "Import Data",
key: "import-data",
- icon: CloudUploadIcon,
+ icon: UploadCloud,
},
- { title: "Issues", key: "repo-details", icon: ListBulletIcon },
+ { title: "Issues", key: "repo-details", icon: List },
{
title: "Users",
key: "import-users",
- icon: UsersIcon,
+ icon: UserGroupIcon,
},
{
title: "Confirm",
key: "import-confirm",
- icon: CheckIcon,
+ icon: Check,
},
];
@@ -166,7 +166,7 @@ export const GithubImporterRoot: React.FC = ({ user }) => {
-
+
Cancel import & go back
diff --git a/web/components/integration/guide.tsx b/web/components/integration/guide.tsx
index fe8f29b24..a0876e673 100644
--- a/web/components/integration/guide.tsx
+++ b/web/components/integration/guide.tsx
@@ -15,7 +15,7 @@ import { DeleteImportModal, GithubImporterRoot, JiraImporterRoot, SingleImport }
// ui
import { Button, Loader } from "@plane/ui";
// icons
-import { ArrowPathIcon } from "@heroicons/react/24/outline";
+import { RefreshCw } from "lucide-react";
// types
import { IImporterService } from "types";
// fetch-keys
@@ -111,7 +111,7 @@ const IntegrationGuide = () => {
mutate(IMPORTER_SERVICES_LIST(workspaceSlug as string)).then(() => setRefreshing(false));
}}
>
-
{" "}
+
{" "}
{refreshing ? "Refreshing..." : "Refresh status"}
diff --git a/web/components/integration/jira/give-details.tsx b/web/components/integration/jira/give-details.tsx
index 9697dd01d..ada403f43 100644
--- a/web/components/integration/jira/give-details.tsx
+++ b/web/components/integration/jira/give-details.tsx
@@ -2,7 +2,7 @@ import React from "react";
import Link from "next/link";
import { useFormContext, Controller } from "react-hook-form";
// icons
-import { PlusIcon } from "@heroicons/react/20/solid";
+import { Plus } from "lucide-react";
// hooks
import useProjects from "hooks/use-projects";
// components
@@ -190,7 +190,7 @@ export const JiraGetImportDetail: React.FC = () => {
}}
className="flex cursor-pointer select-none items-center space-x-2 truncate rounded px-1 py-1.5 text-custom-text-200"
>
-
+
Create new project
diff --git a/web/components/integration/jira/root.tsx b/web/components/integration/jira/root.tsx
index 505785544..9ebb68b7b 100644
--- a/web/components/integration/jira/root.tsx
+++ b/web/components/integration/jira/root.tsx
@@ -12,8 +12,7 @@ import { mutate } from "swr";
import { FormProvider, useForm } from "react-hook-form";
// icons
-import { ArrowLeftIcon, ListBulletIcon } from "@heroicons/react/24/outline";
-import { CogIcon, UsersIcon, CheckIcon } from "components/icons";
+import { ArrowLeft, Check, List, Settings } from "lucide-react";
// services
import { JiraImporterService } from "services/integrations";
@@ -22,7 +21,7 @@ import { JiraImporterService } from "services/integrations";
import { IMPORTER_SERVICES_LIST } from "constants/fetch-keys";
// components
-import { Button } from "@plane/ui";
+import { Button, UserGroupIcon } from "@plane/ui";
import {
JiraGetImportDetail,
JiraProjectDetail,
@@ -45,22 +44,22 @@ const integrationWorkflowData: Array<{
{
title: "Configure",
key: "import-configure",
- icon: CogIcon,
+ icon: Settings,
},
{
title: "Import Data",
key: "display-import-data",
- icon: ListBulletIcon,
+ icon: List,
},
{
title: "Users",
key: "import-users",
- icon: UsersIcon,
+ icon: UserGroupIcon,
},
{
title: "Confirm",
key: "import-confirmation",
- icon: CheckIcon,
+ icon: Check,
},
];
@@ -113,7 +112,7 @@ export const JiraImporterRoot: React.FC = ({ user }) => {
diff --git a/web/components/integration/single-import.tsx b/web/components/integration/single-import.tsx
index 9ebe1ad22..a67eba628 100644
--- a/web/components/integration/single-import.tsx
+++ b/web/components/integration/single-import.tsx
@@ -1,7 +1,7 @@
// ui
import { CustomMenu } from "components/ui";
// icons
-import { TrashIcon } from "@heroicons/react/24/outline";
+import { Trash2 } from "lucide-react";
// helpers
import { renderShortDateWithYearFormat } from "helpers/date-time.helper";
// types
@@ -48,7 +48,7 @@ export const SingleImport: React.FC = ({ service, refreshing, handleDelet
-
+
Delete import
diff --git a/web/components/integration/single-integration-card.tsx b/web/components/integration/single-integration-card.tsx
index cf2b0c661..56c0c2408 100644
--- a/web/components/integration/single-integration-card.tsx
+++ b/web/components/integration/single-integration-card.tsx
@@ -15,7 +15,7 @@ import { Button, Loader } from "@plane/ui";
// icons
import GithubLogo from "public/services/github.png";
import SlackLogo from "public/services/slack.png";
-import { CheckCircle2 } from "lucide-react";
+import { CheckCircle } from "lucide-react";
// types
import { IAppIntegration, IWorkspaceIntegration } from "types";
// fetch-keys
@@ -102,7 +102,7 @@ export const SingleIntegrationCard: React.FC = ({ integration }) => {
{integration.title}
{workspaceIntegrations
- ? isInstalled &&
+ ? isInstalled &&
: null}
diff --git a/web/components/issues/activity.tsx b/web/components/issues/activity.tsx
index 6e12435cc..e6c29251c 100644
--- a/web/components/issues/activity.tsx
+++ b/web/components/issues/activity.tsx
@@ -7,12 +7,12 @@ import { useRouter } from "next/router";
import { ActivityIcon, ActivityMessage } from "components/core";
import { CommentCard } from "components/issues/comment";
// ui
-import { Icon } from "components/ui";
import { Loader, Tooltip } from "@plane/ui";
// helpers
import { render24HourFormatTime, renderLongDateFormat, timeAgo } from "helpers/date-time.helper";
// types
import { IIssueActivity, IIssueComment } from "types";
+import { History } from "lucide-react";
type Props = {
activity: IIssueActivity[] | undefined;
@@ -72,7 +72,7 @@ export const IssueActivitySection: React.FC = ({
{activityItem.field ? (
activityItem.new_value === "restore" ? (
-
+
) : (
)
diff --git a/web/components/issues/attachment/attachments.tsx b/web/components/issues/attachment/attachments.tsx
index afa5441ee..176ff5f7c 100644
--- a/web/components/issues/attachment/attachments.tsx
+++ b/web/components/issues/attachment/attachments.tsx
@@ -9,8 +9,8 @@ import useSWR from "swr";
import { Tooltip } from "@plane/ui";
import { DeleteAttachmentModal } from "./delete-attachment-modal";
// icons
-import { XMarkIcon } from "@heroicons/react/24/outline";
-import { ExclamationIcon, getFileIcon } from "components/icons";
+import { getFileIcon } from "components/icons";
+import { AlertCircle, X } from "lucide-react";
// services
import { IssueAttachmentService } from "services/issue";
import { ProjectService } from "services/project";
@@ -77,7 +77,7 @@ export const IssueAttachments = () => {
} uploaded on ${renderLongDateFormat(file.updated_at)}`}
>
-
+
@@ -97,7 +97,7 @@ export const IssueAttachments = () => {
setAttachmentDeleteModal(true);
}}
>
-
+
))}
diff --git a/web/components/issues/attachment/delete-attachment-modal.tsx b/web/components/issues/attachment/delete-attachment-modal.tsx
index 863318835..f2b346b87 100644
--- a/web/components/issues/attachment/delete-attachment-modal.tsx
+++ b/web/components/issues/attachment/delete-attachment-modal.tsx
@@ -13,7 +13,7 @@ import useToast from "hooks/use-toast";
// ui
import { Button } from "@plane/ui";
// icons
-import { ExclamationTriangleIcon } from "@heroicons/react/24/outline";
+import { AlertTriangle } from "lucide-react";
// helper
import { getFileName } from "helpers/attachment.helper";
// types
@@ -92,7 +92,7 @@ export const DeleteAttachmentModal: React.FC
= ({ isOpen, setIsOpen, data
diff --git a/web/components/issues/comment/add-comment.tsx b/web/components/issues/comment/add-comment.tsx
index 87d391f01..f836efb01 100644
--- a/web/components/issues/comment/add-comment.tsx
+++ b/web/components/issues/comment/add-comment.tsx
@@ -7,8 +7,9 @@ import { FileService } from "services/file.service";
// components
import { LiteTextEditorWithRef } from "@plane/lite-text-editor";
// ui
-import { Icon } from "components/ui";
import { Button, Tooltip } from "@plane/ui";
+import { Globe2, Lock } from "lucide-react";
+
// types
import type { IIssueComment } from "types";
@@ -24,18 +25,18 @@ type Props = {
};
type commentAccessType = {
- icon: string;
+ icon: any;
key: string;
label: "Private" | "Public";
};
const commentAccess: commentAccessType[] = [
{
- icon: "lock",
+ icon: Lock,
key: "INTERNAL",
label: "Private",
},
{
- icon: "public",
+ icon: Globe2,
key: "EXTERNAL",
label: "Public",
},
@@ -87,8 +88,7 @@ export const AddComment: React.FC = ({ disabled = false, onSubmit, showAc
value === access.key ? "bg-custom-background-80" : ""
}`}
>
- = ({
)}
-
+
@@ -120,21 +120,21 @@ export const CommentCard: React.FC
= ({
disabled={isSubmitting}
className="group rounded border border-green-500 bg-green-500/20 p-2 shadow-md duration-300 hover:bg-green-500"
>
-
+
setIsEditing(false)}
>
-
+
{showAccessSpecifier && (
-
+ {comment.access === "INTERNAL" ? : }
)}
= ({
{user?.id === comment.actor && (
setIsEditing(true)} className="flex items-center gap-1">
-
+
Edit comment
{showAccessSpecifier && (
@@ -160,7 +160,7 @@ export const CommentCard: React.FC = ({
onClick={() => onSubmit(comment.id, { access: "EXTERNAL" })}
className="flex items-center gap-1"
>
-
+
Switch to public comment
) : (
@@ -169,7 +169,7 @@ export const CommentCard: React.FC = ({
onClick={() => onSubmit(comment.id, { access: "INTERNAL" })}
className="flex items-center gap-1"
>
-
+
Switch to private comment
)}
@@ -181,7 +181,7 @@ export const CommentCard: React.FC = ({
}}
className="flex items-center gap-1"
>
-
+
Delete comment
diff --git a/web/components/issues/delete-draft-issue-modal.tsx b/web/components/issues/delete-draft-issue-modal.tsx
index d1c8ec9b5..4a0b0fd9a 100644
--- a/web/components/issues/delete-draft-issue-modal.tsx
+++ b/web/components/issues/delete-draft-issue-modal.tsx
@@ -14,7 +14,7 @@ import { IssueDraftService } from "services/issue";
import useIssuesView from "hooks/use-issues-view";
import useToast from "hooks/use-toast";
// icons
-import { ExclamationTriangleIcon } from "@heroicons/react/24/outline";
+import { AlertTriangle } from "lucide-react";
// ui
import { Button } from "@plane/ui";
// types
@@ -114,7 +114,7 @@ export const DeleteDraftIssueModal: React.FC = (props) => {
-
+
Delete Draft Issue
diff --git a/web/components/issues/delete-issue-modal.tsx b/web/components/issues/delete-issue-modal.tsx
index 37990c327..0ca58f62d 100644
--- a/web/components/issues/delete-issue-modal.tsx
+++ b/web/components/issues/delete-issue-modal.tsx
@@ -8,7 +8,7 @@ import { IssueService, IssueArchiveService } from "services/issue";
import useIssuesView from "hooks/use-issues-view";
import useToast from "hooks/use-toast";
// icons
-import { ExclamationTriangleIcon } from "@heroicons/react/24/outline";
+import { AlertTriangle } from "lucide-react";
// ui
import { Button } from "@plane/ui";
// types
@@ -162,7 +162,7 @@ export const DeleteIssueModal: React.FC = ({
-
+
Delete Issue
diff --git a/web/components/issues/draft-issue-form.tsx b/web/components/issues/draft-issue-form.tsx
index 538f846cf..b40d53500 100644
--- a/web/components/issues/draft-issue-form.tsx
+++ b/web/components/issues/draft-issue-form.tsx
@@ -25,7 +25,7 @@ import { CreateLabelModal } from "components/labels";
import { CustomMenu } from "components/ui";
import { Button, Input, ToggleSwitch } from "@plane/ui";
// icons
-import { SparklesIcon, XMarkIcon } from "@heroicons/react/24/outline";
+import { Sparkle, X } from "lucide-react";
// types
import type { IUser, IIssue, ISearchIssueResponse } from "types";
// components
@@ -358,7 +358,7 @@ export const DraftIssueForm: FC = (props) => {
{selectedParentIssue.project__identifier}-{selectedParentIssue.sequence_id}
{selectedParentIssue.name.substring(0, 50)}
-
{
setValue("parent", null);
@@ -414,7 +414,7 @@ export const DraftIssueForm: FC = (props) => {
"Generating response..."
) : (
<>
- I{"'"}m feeling lucky
+ I{"'"}m feeling lucky
>
)}
@@ -424,7 +424,7 @@ export const DraftIssueForm: FC = (props) => {
className="flex items-center gap-1 rounded px-1.5 py-1 text-xs hover:bg-custom-background-90"
onClick={() => setGptAssistantModal((prevData) => !prevData)}
>
-
+
AI
diff --git a/web/components/issues/form.tsx b/web/components/issues/form.tsx
index 07b55ae38..62443f764 100644
--- a/web/components/issues/form.tsx
+++ b/web/components/issues/form.tsx
@@ -24,7 +24,7 @@ import { CreateLabelModal } from "components/labels";
import { CustomMenu } from "components/ui";
import { Button, Input, ToggleSwitch } from "@plane/ui";
// icons
-import { SparklesIcon, XMarkIcon } from "@heroicons/react/24/outline";
+import { Sparkle, X } from "lucide-react";
// types
import type { IUser, IIssue, ISearchIssueResponse } from "types";
// components
@@ -302,7 +302,7 @@ export const IssueForm: FC
= (props) => {
{selectedParentIssue.project__identifier}-{selectedParentIssue.sequence_id}
{selectedParentIssue.name.substring(0, 50)}
- {
setValue("parent", null);
@@ -358,7 +358,7 @@ export const IssueForm: FC = (props) => {
"Generating response..."
) : (
<>
- I{"'"}m feeling lucky
+ I{"'"}m feeling lucky
>
)}
@@ -368,7 +368,7 @@ export const IssueForm: FC = (props) => {
className="flex items-center gap-1 rounded px-1.5 py-1 text-xs hover:bg-custom-background-90"
onClick={() => setGptAssistantModal((prevData) => !prevData)}
>
-
+
AI
diff --git a/web/components/issues/issue-layouts/filters/applied-filters/priority.tsx b/web/components/issues/issue-layouts/filters/applied-filters/priority.tsx
index 44328afff..7b76f8b51 100644
--- a/web/components/issues/issue-layouts/filters/applied-filters/priority.tsx
+++ b/web/components/issues/issue-layouts/filters/applied-filters/priority.tsx
@@ -1,7 +1,7 @@
import { observer } from "mobx-react-lite";
// icons
-import { PriorityIcon } from "components/icons";
+import { PriorityIcon } from "@plane/ui";
import { X } from "lucide-react";
// types
import { TIssuePriorities } from "types";
@@ -20,7 +20,7 @@ export const AppliedPriorityFilters: React.FC = observer((props) => {
{
className="flex gap-1.5 items-center pl-7 py-2.5 text-sm sticky left-0 z-[1] text-custom-text-200 bg-custom-background-100 group-hover:text-custom-text-100 group-hover:bg-custom-background-80 border-custom-border-200 w-full"
type="button"
>
-
+
Add Issue
}
diff --git a/web/components/issues/issue-layouts/spreadsheet/module-root.tsx b/web/components/issues/issue-layouts/spreadsheet/module-root.tsx
index d82289baf..a72cf40fe 100644
--- a/web/components/issues/issue-layouts/spreadsheet/module-root.tsx
+++ b/web/components/issues/issue-layouts/spreadsheet/module-root.tsx
@@ -14,7 +14,7 @@ import { IssuePeekOverview } from "components/issues";
import { CustomMenu } from "components/ui";
import { Spinner } from "@plane/ui";
// icon
-import { PlusIcon } from "@heroicons/react/24/outline";
+import { Plus } from "lucide-react";
// types
import { IIssue, IIssueDisplayFilterOptions, IIssueDisplayProperties } from "types";
import { IIssueUnGroupedStructure } from "store/issue";
@@ -117,7 +117,7 @@ export const ModuleSpreadsheetLayout: React.FC = observer(() => {
className="flex gap-1.5 items-center pl-7 py-2.5 text-sm sticky left-0 z-[1] text-custom-text-200 bg-custom-background-100 group-hover:text-custom-text-100 group-hover:bg-custom-background-80 border-custom-border-200 w-full"
type="button"
>
-
+
Add Issue
}
diff --git a/web/components/issues/issue-layouts/spreadsheet/project-view-root.tsx b/web/components/issues/issue-layouts/spreadsheet/project-view-root.tsx
index cbfabeb6e..ad0a935a6 100644
--- a/web/components/issues/issue-layouts/spreadsheet/project-view-root.tsx
+++ b/web/components/issues/issue-layouts/spreadsheet/project-view-root.tsx
@@ -13,7 +13,7 @@ import { IssuePeekOverview } from "components/issues";
// ui
import { Spinner } from "components/ui";
// icon
-import { PlusIcon } from "@heroicons/react/24/outline";
+import { Plus } from "lucide-react";
// types
import { IIssue, IIssueDisplayFilterOptions, IIssueDisplayProperties } from "types";
import { IIssueUnGroupedStructure } from "store/issue";
@@ -114,7 +114,7 @@ export const ProjectViewSpreadsheetLayout: React.FC = observer(() => {
document.dispatchEvent(e);
}}
>
-
+
Add Issue
diff --git a/web/components/issues/issue-layouts/spreadsheet/root.tsx b/web/components/issues/issue-layouts/spreadsheet/root.tsx
index 6c14ebf69..387419c7b 100644
--- a/web/components/issues/issue-layouts/spreadsheet/root.tsx
+++ b/web/components/issues/issue-layouts/spreadsheet/root.tsx
@@ -14,7 +14,7 @@ import { IssuePeekOverview } from "components/issues";
import { CustomMenu } from "components/ui";
import { Spinner } from "@plane/ui";
// icon
-import { PlusIcon } from "@heroicons/react/24/outline";
+import { Plus } from "lucide-react";
// types
import { IIssue, IIssueDisplayFilterOptions, IIssueDisplayProperties } from "types";
import { IIssueUnGroupedStructure } from "store/issue";
@@ -118,7 +118,7 @@ export const SpreadsheetLayout: React.FC = observer(() => {
document.dispatchEvent(e);
}}
>
-
+
Add Issue
) : (
@@ -130,7 +130,7 @@ export const SpreadsheetLayout: React.FC = observer(() => {
className="flex gap-1.5 items-center pl-7 py-2.5 text-sm sticky left-0 z-[1] text-custom-text-200 bg-custom-background-100 group-hover:text-custom-text-100 group-hover:bg-custom-background-80 border-custom-border-200 w-full"
type="button"
>
-
+
Add Issue
}
diff --git a/web/components/issues/main-content.tsx b/web/components/issues/main-content.tsx
index f77146d37..b6587a1a1 100644
--- a/web/components/issues/main-content.tsx
+++ b/web/components/issues/main-content.tsx
@@ -24,8 +24,8 @@ import { SubIssuesRoot } from "./sub-issues";
// ui
import { CustomMenu } from "components/ui";
// icons
-import { LayerDiagonalIcon } from "components/icons";
-import { MinusCircleIcon } from "@heroicons/react/24/outline";
+import { LayersIcon } from "@plane/ui";
+import { MinusCircle } from "lucide-react";
// types
import { IIssue, IIssueComment } from "types";
// fetch-keys
@@ -142,7 +142,7 @@ export const IssueMainContent: React.FC = ({ issueDetails, submitChanges,
href={`/${workspaceSlug}/projects/${projectId as string}/issues/${issue.id}`}
className="flex items-center gap-2 py-2"
>
-
+
{issueDetails.project_detail.identifier}-{issue.sequence_id}
))}
@@ -158,7 +158,7 @@ export const IssueMainContent: React.FC = ({ issueDetails, submitChanges,
onClick={() => submitChanges({ parent: null })}
className="flex items-center gap-2 text-red-500 py-2"
>
-
+
Remove Parent Issue
diff --git a/web/components/issues/my-issues/my-issues-select-filters.tsx b/web/components/issues/my-issues/my-issues-select-filters.tsx
index e165a7d6c..355496888 100644
--- a/web/components/issues/my-issues/my-issues-select-filters.tsx
+++ b/web/components/issues/my-issues/my-issues-select-filters.tsx
@@ -8,7 +8,7 @@ import { DateFilterModal } from "components/core";
// ui
import { MultiLevelDropdown } from "components/ui";
// icons
-import { PriorityIcon, StateGroupIcon } from "components/icons";
+import { PriorityIcon, StateGroupIcon } from "@plane/ui";
// helpers
import { checkIfArraysHaveSameElements } from "helpers/array.helper";
// types
diff --git a/web/components/issues/my-issues/my-issues-view-options.tsx b/web/components/issues/my-issues/my-issues-view-options.tsx
index f9314b775..7ca6dfce7 100644
--- a/web/components/issues/my-issues/my-issues-view-options.tsx
+++ b/web/components/issues/my-issues/my-issues-view-options.tsx
@@ -9,8 +9,7 @@ import { MyIssuesSelectFilters } from "components/issues";
// ui
import { Tooltip } from "@plane/ui";
// icons
-import { FormatListBulletedOutlined } from "@mui/icons-material";
-import { CreditCard } from "lucide-react";
+import { List, Sheet } from "lucide-react";
// helpers
import { replaceUnderscoreIfSnakeCase } from "helpers/string.helper";
import { checkIfArraysHaveSameElements } from "helpers/array.helper";
@@ -20,11 +19,11 @@ import { TIssueLayouts } from "types";
const issueViewOptions: { type: TIssueLayouts; Icon: any }[] = [
{
type: "list",
- Icon: FormatListBulletedOutlined,
+ Icon: List,
},
{
type: "spreadsheet",
- Icon: CreditCard,
+ Icon: Sheet,
},
];
diff --git a/web/components/issues/parent-issues-list-modal.tsx b/web/components/issues/parent-issues-list-modal.tsx
index fcc8b8cc1..792ce0031 100644
--- a/web/components/issues/parent-issues-list-modal.tsx
+++ b/web/components/issues/parent-issues-list-modal.tsx
@@ -8,13 +8,10 @@ import { Combobox, Dialog, Transition } from "@headlessui/react";
import { ProjectService } from "services/project";
// hooks
import useDebounce from "hooks/use-debounce";
-// components
-import { LayerDiagonalIcon } from "components/icons";
// ui
-import { Loader, ToggleSwitch, Tooltip } from "@plane/ui";
+import { LayersIcon, Loader, ToggleSwitch, Tooltip } from "@plane/ui";
// icons
-import { LaunchOutlined } from "@mui/icons-material";
-import { MagnifyingGlassIcon } from "@heroicons/react/24/outline";
+import { Rocket, Search } from "lucide-react";
// types
import { ISearchIssueResponse } from "types";
@@ -105,7 +102,7 @@ export const ParentIssuesListModal: React.FC = ({
}}
>
-
@@ -154,7 +151,7 @@ export const ParentIssuesListModal: React.FC
= ({
{!isSearching && issues.length === 0 && searchTerm !== "" && debouncedSearchTerm !== "" && (
-
+
No issues found. Create a new issue with{" "}
C
.
@@ -200,11 +197,7 @@ export const ParentIssuesListModal: React.FC = ({
rel="noopener noreferrer"
onClick={(e) => e.stopPropagation()}
>
-
+
))}
diff --git a/web/components/issues/peek-overview/header.tsx b/web/components/issues/peek-overview/header.tsx
index b607e4089..44fa22e54 100644
--- a/web/components/issues/peek-overview/header.tsx
+++ b/web/components/issues/peek-overview/header.tsx
@@ -3,9 +3,10 @@ import Link from "next/link";
// hooks
import useToast from "hooks/use-toast";
// ui
-import { CustomSelect, Icon } from "components/ui";
+import { CustomSelect } from "components/ui";
// icons
-import { East, OpenInFull } from "@mui/icons-material";
+import { FullScreenPeekIcon, ModalPeekIcon, SidePeekIcon } from "@plane/ui";
+import { LinkIcon, MoveRight, Trash2 } from "lucide-react";
// helpers
import { copyTextToClipboard } from "helpers/string.helper";
// types
@@ -23,18 +24,18 @@ type Props = {
const peekModes: {
key: TPeekOverviewModes;
- icon: string;
+ icon: any;
label: string;
}[] = [
- { key: "side", icon: "side_navigation", label: "Side Peek" },
+ { key: "side", icon: SidePeekIcon, label: "Side Peek" },
{
key: "modal",
- icon: "dialogs",
+ icon: ModalPeekIcon,
label: "Modal Peek",
},
{
key: "full",
- icon: "nearby",
+ icon: FullScreenPeekIcon,
label: "Full Screen Peek",
},
];
@@ -61,48 +62,34 @@ export const PeekOverviewHeader: React.FC = ({
});
};
+ const currentMode = peekModes.find((m) => m.key === mode);
+
return (
{mode === "side" && (
-
+
)}
-
+
setMode(val)}
customButton={
-
- m.key === mode)?.icon ?? ""} />
+
+ {currentMode && }
}
>
{peekModes.map((mode) => (
-
+
{mode.label}
@@ -112,10 +99,10 @@ export const PeekOverviewHeader: React.FC = ({
{(mode === "side" || mode === "modal") && (
-
+
-
+
)}
diff --git a/web/components/issues/peek-overview/issue-properties.tsx b/web/components/issues/peek-overview/issue-properties.tsx
index 7a4fec277..9a871dfa2 100644
--- a/web/components/issues/peek-overview/issue-properties.tsx
+++ b/web/components/issues/peek-overview/issue-properties.tsx
@@ -1,6 +1,6 @@
import { FC } from "react";
// components
-import { StateGroupIcon } from "components/icons";
+import { DoubleCircleIcon, StateGroupIcon, UserGroupIcon } from "@plane/ui";
// hooks
import useToast from "hooks/use-toast";
// components
@@ -11,11 +11,12 @@ import {
TPeekOverviewModes,
} from "components/issues";
// ui
-import { CustomDatePicker, Icon } from "components/ui";
+import { CustomDatePicker } from "components/ui";
// helpers
import { copyTextToClipboard } from "helpers/string.helper";
// types
import { IIssue } from "types";
+import { CalendarDays, LinkIcon, Signal, Trash2 } from "lucide-react";
type Props = {
handleDeleteIssue: () => void;
@@ -62,10 +63,10 @@ export const PeekOverviewIssueProperties: FC = (props) => {
-
+
-
+
@@ -73,7 +74,7 @@ export const PeekOverviewIssueProperties: FC
= (props) => {
-
+
State
@@ -86,7 +87,7 @@ export const PeekOverviewIssueProperties: FC
= (props) => {
-
+
Assignees
@@ -99,7 +100,7 @@ export const PeekOverviewIssueProperties: FC
= (props) => {
-
+
Priority
@@ -112,7 +113,7 @@ export const PeekOverviewIssueProperties: FC
= (props) => {
-
+
Start date
@@ -132,7 +133,7 @@ export const PeekOverviewIssueProperties: FC
= (props) => {
-
+
Due date
diff --git a/web/components/issues/select/assignee.tsx b/web/components/issues/select/assignee.tsx
index 7deb7603f..431d944d6 100644
--- a/web/components/issues/select/assignee.tsx
+++ b/web/components/issues/select/assignee.tsx
@@ -5,7 +5,8 @@ import useSWR from "swr";
// services
import { ProjectService } from "services/project";
// ui
-import { AssigneesList, Avatar, CustomSearchSelect, Icon } from "components/ui";
+import { AssigneesList, Avatar, CustomSearchSelect } from "components/ui";
+import { User2 } from "lucide-react";
// fetch-keys
import { PROJECT_MEMBERS } from "constants/fetch-keys";
@@ -52,7 +53,7 @@ export const IssueAssigneeSelect: React.FC
= ({ projectId, value = [], on
) : (
-
+
Assignee
)}
diff --git a/web/components/issues/select/date.tsx b/web/components/issues/select/date.tsx
index 01fbacda3..2408bf4e1 100644
--- a/web/components/issues/select/date.tsx
+++ b/web/components/issues/select/date.tsx
@@ -1,7 +1,7 @@
import React from "react";
import { Popover, Transition } from "@headlessui/react";
-import { CalendarDaysIcon, XMarkIcon } from "@heroicons/react/24/outline";
+import { CalendarDays, X } from "lucide-react";
// react-datepicker
import DatePicker from "react-datepicker";
// import "react-datepicker/dist/react-datepicker.css";
@@ -25,12 +25,12 @@ export const IssueDateSelect: React.FC
= ({ label, maxDate, minDate, onCh
<>
{renderShortDateWithYearFormat(value)}
onChange(null)}>
-
+
>
) : (
<>
-
+
{label}
>
)}
diff --git a/web/components/issues/select/estimate.tsx b/web/components/issues/select/estimate.tsx
index 7ac86f6b9..7141a24a0 100644
--- a/web/components/issues/select/estimate.tsx
+++ b/web/components/issues/select/estimate.tsx
@@ -3,7 +3,7 @@ import React from "react";
// ui
import { CustomSelect } from "components/ui";
// icons
-import { PlayIcon } from "@heroicons/react/24/outline";
+import { Triangle } from "lucide-react";
// fetch-keys
import useEstimateOption from "hooks/use-estimate-option";
@@ -22,11 +22,7 @@ export const IssueEstimateSelect: React.FC = ({ value, onChange }) => {
value={value}
label={
-
+
{estimatePoints?.find((e) => e.key === value)?.value ?? "Estimate"}
@@ -39,7 +35,7 @@ export const IssueEstimateSelect: React.FC
= ({ value, onChange }) => {
<>
-
+
None
>
@@ -49,7 +45,7 @@ export const IssueEstimateSelect: React.FC = ({ value, onChange }) => {
<>
-
+
{point.value}
>
diff --git a/web/components/issues/select/label.tsx b/web/components/issues/select/label.tsx
index 3c9713469..a6d1ea8fa 100644
--- a/web/components/issues/select/label.tsx
+++ b/web/components/issues/select/label.tsx
@@ -7,7 +7,7 @@ import { IssueLabelService } from "services/issue";
// ui
import { IssueLabelsList } from "components/ui";
// icons
-import { CheckIcon, MagnifyingGlassIcon, PlusIcon, RectangleGroupIcon, TagIcon } from "@heroicons/react/24/outline";
+import { Check, Component, Plus, Search, Tag } from "lucide-react";
// types
import type { IIssueLabels } from "types";
// fetch-keys
@@ -54,7 +54,7 @@ export const IssueLabelSelect: React.FC = ({ setIsOpen, value, onChange,
) : (
-
+
Label
)}
@@ -75,7 +75,7 @@ export const IssueLabelSelect: React.FC = ({ setIsOpen, value, onChange,
bg-custom-background-90 px-2 py-2 text-xs shadow-md focus:outline-none`}
>
-
+
setQuery(event.target.value)}
@@ -113,7 +113,7 @@ export const IssueLabelSelect: React.FC = ({ setIsOpen, value, onChange,
{label.name}
-
+
)}
@@ -123,7 +123,7 @@ export const IssueLabelSelect: React.FC = ({ setIsOpen, value, onChange,
return (
- {label.name}
+ {label.name}
{children.map((child) => (
@@ -148,7 +148,7 @@ export const IssueLabelSelect: React.FC
= ({ setIsOpen, value, onChange,
{child.name}
-
+
)}
@@ -170,7 +170,7 @@ export const IssueLabelSelect: React.FC = ({ setIsOpen, value, onChange,
onClick={() => setIsOpen(true)}
>
-
+
Create New Label
diff --git a/web/components/issues/select/priority.tsx b/web/components/issues/select/priority.tsx
index 8624f8cf8..6657ec120 100644
--- a/web/components/issues/select/priority.tsx
+++ b/web/components/issues/select/priority.tsx
@@ -3,7 +3,7 @@ import React from "react";
// ui
import { CustomSelect } from "components/ui";
// icons
-import { PriorityIcon } from "components/icons/priority-icon";
+import { PriorityIcon } from "@plane/ui";
// types
import { TIssuePriorities } from "types";
// constants
@@ -20,14 +20,9 @@ export const IssuePrioritySelect: React.FC = ({ value, onChange }) => (
label={
-
-
-
- {value ?? "Priority"}
+
+
{value ?? "Priority"}
}
onChange={onChange}
diff --git a/web/components/issues/select/project.tsx b/web/components/issues/select/project.tsx
index 5d1c964e1..3adeef258 100644
--- a/web/components/issues/select/project.tsx
+++ b/web/components/issues/select/project.tsx
@@ -3,7 +3,7 @@ import useProjects from "hooks/use-projects";
// ui
import { CustomSelect } from "components/ui";
// icons
-import { ClipboardDocumentListIcon } from "@heroicons/react/24/outline";
+import { Clipboard } from "lucide-react";
export interface IssueProjectSelectProps {
value: string;
@@ -18,10 +18,8 @@ export const IssueProjectSelect: React.FC = ({ value, o
value={value}
label={
<>
-
-
- {projects?.find((i) => i.id === value)?.identifier ?? "Project"}
-
+
+ {projects?.find((i) => i.id === value)?.identifier ?? "Project"}
>
}
onChange={(val: string) => onChange(val)}
diff --git a/web/components/issues/select/state.tsx b/web/components/issues/select/state.tsx
index b7424a52b..0abea45af 100644
--- a/web/components/issues/select/state.tsx
+++ b/web/components/issues/select/state.tsx
@@ -9,8 +9,8 @@ import { ProjectStateService } from "services/project";
// ui
import { CustomSearchSelect } from "components/ui";
// icons
-import { PlusIcon, Squares2X2Icon } from "@heroicons/react/24/outline";
-import { StateGroupIcon } from "components/icons";
+import { DoubleCircleIcon, StateGroupIcon } from "@plane/ui";
+import { Plus } from "lucide-react";
// helpers
import { getStatesList } from "helpers/state.helper";
// fetch keys
@@ -63,7 +63,7 @@ export const IssueStateSelect: React.FC = ({ setIsOpen, value, onChange,
) : currentDefaultState ? (
) : (
-
+
)}
{selectedOption?.name
? selectedOption.name
@@ -76,7 +76,7 @@ export const IssueStateSelect: React.FC = ({ setIsOpen, value, onChange,
className="flex w-full select-none items-center gap-2 rounded px-1 py-1.5 text-xs text-custom-text-200 hover:bg-custom-background-80"
onClick={() => setIsOpen(true)}
>
-
+
Create New State
}
diff --git a/web/components/issues/sidebar-select/blocked.tsx b/web/components/issues/sidebar-select/blocked.tsx
index 3db9c7184..73bf747af 100644
--- a/web/components/issues/sidebar-select/blocked.tsx
+++ b/web/components/issues/sidebar-select/blocked.tsx
@@ -11,8 +11,8 @@ import { IssueService } from "services/issue";
// components
import { ExistingIssuesListModal } from "components/core";
// icons
-import { XMarkIcon } from "@heroicons/react/24/outline";
-import { BlockedIcon } from "components/icons";
+import { X } from "lucide-react";
+import { BlockedIcon } from "@plane/ui";
// types
import { BlockeIssueDetail, IIssue, ISearchIssueResponse } from "types";
@@ -139,7 +139,7 @@ export const SidebarBlockedSelect: React.FC = ({ issueId, submitChanges,
);
}}
>
-
+
))
diff --git a/web/components/issues/sidebar-select/blocker.tsx b/web/components/issues/sidebar-select/blocker.tsx
index 8d174e448..139212313 100644
--- a/web/components/issues/sidebar-select/blocker.tsx
+++ b/web/components/issues/sidebar-select/blocker.tsx
@@ -12,8 +12,8 @@ import { ExistingIssuesListModal } from "components/core";
// services
import { IssueService } from "services/issue";
// icons
-import { XMarkIcon } from "@heroicons/react/24/outline";
-import { BlockerIcon } from "components/icons";
+import { X } from "lucide-react";
+import { BlockerIcon } from "@plane/ui";
// types
import { BlockeIssueDetail, IIssue, ISearchIssueResponse } from "types";
@@ -149,7 +149,7 @@ export const SidebarBlockerSelect: React.FC
= ({ issueId, submitChanges,
);
}}
>
-
+
))
diff --git a/web/components/issues/sidebar-select/duplicate.tsx b/web/components/issues/sidebar-select/duplicate.tsx
index 976dae14b..561072ceb 100644
--- a/web/components/issues/sidebar-select/duplicate.tsx
+++ b/web/components/issues/sidebar-select/duplicate.tsx
@@ -9,7 +9,7 @@ import useUser from "hooks/use-user";
// icons
import { X, CopyPlus } from "lucide-react";
// components
-import { BlockerIcon } from "components/icons";
+import { BlockerIcon } from "@plane/ui";
import { ExistingIssuesListModal } from "components/core";
// services
import { IssueService } from "services/issue";
diff --git a/web/components/issues/sidebar-select/estimate.tsx b/web/components/issues/sidebar-select/estimate.tsx
index 75c168853..a3a4c421c 100644
--- a/web/components/issues/sidebar-select/estimate.tsx
+++ b/web/components/issues/sidebar-select/estimate.tsx
@@ -5,7 +5,7 @@ import useEstimateOption from "hooks/use-estimate-option";
// ui
import { CustomSelect } from "components/ui";
// icons
-import { PlayIcon } from "@heroicons/react/24/outline";
+import { Triangle } from "lucide-react";
type Props = {
value: number | null;
@@ -21,11 +21,7 @@ export const SidebarEstimateSelect: React.FC
= ({ value, onChange, disabl
value={value}
customButton={
-
+
{estimatePoints?.find((e) => e.key === value)?.value ?? "No estimate"}
}
@@ -35,7 +31,7 @@ export const SidebarEstimateSelect: React.FC = ({ value, onChange, disabl
<>
-
+
None
>
@@ -45,7 +41,7 @@ export const SidebarEstimateSelect: React.FC = ({ value, onChange, disabl
<>
-
+
{point.value}
>
diff --git a/web/components/issues/sidebar-select/label.tsx b/web/components/issues/sidebar-select/label.tsx
index 99b4ceb15..dffb97f56 100644
--- a/web/components/issues/sidebar-select/label.tsx
+++ b/web/components/issues/sidebar-select/label.tsx
@@ -12,7 +12,7 @@ import useUser from "hooks/use-user";
// ui
import { Input, Spinner } from "@plane/ui";
// icons
-import { PlusIcon, RectangleGroupIcon, TagIcon, XMarkIcon } from "@heroicons/react/24/outline";
+import { Component, Plus, Tag, X } from "lucide-react";
// types
import { IIssue, IIssueLabels } from "types";
// fetch-keys
@@ -94,7 +94,7 @@ export const SidebarLabelSelect: React.FC = ({
@@ -121,7 +121,7 @@ export const SidebarLabelSelect: React.FC
= ({
}}
/>
{label.name}
-
+
);
})}
@@ -188,7 +188,7 @@ export const SidebarLabelSelect: React.FC = ({
return (
-
+
{label.name}
@@ -240,11 +240,11 @@ export const SidebarLabelSelect: React.FC
= ({
>
{createLabelForm ? (
<>
- Cancel
+ Cancel
>
) : (
<>
- New
+ New
>
)}
@@ -317,10 +317,10 @@ export const SidebarLabelSelect: React.FC = ({
className="grid place-items-center rounded bg-red-500 p-2.5"
onClick={() => setCreateLabelForm(false)}
>
-
+
-
+
)}
diff --git a/web/components/issues/sidebar-select/priority.tsx b/web/components/issues/sidebar-select/priority.tsx
index 512aba5c6..2ea835bc2 100644
--- a/web/components/issues/sidebar-select/priority.tsx
+++ b/web/components/issues/sidebar-select/priority.tsx
@@ -3,7 +3,7 @@ import React from "react";
// ui
import { CustomSelect } from "components/ui";
// icons
-import { PriorityIcon } from "components/icons/priority-icon";
+import { PriorityIcon } from "@plane/ui";
// types
import { TIssuePriorities } from "types";
// constants
@@ -32,7 +32,7 @@ export const SidebarPrioritySelect: React.FC = ({ value, onChange, disabl
}`}
>
-
+
{value ?? "None"}
@@ -45,7 +45,7 @@ export const SidebarPrioritySelect: React.FC
= ({ value, onChange, disabl
{PRIORITIES.map((option) => (
<>
-
+
{option ?? "None"}
>
diff --git a/web/components/issues/sidebar-select/relates-to.tsx b/web/components/issues/sidebar-select/relates-to.tsx
index 393c6fa3b..3ffc18886 100644
--- a/web/components/issues/sidebar-select/relates-to.tsx
+++ b/web/components/issues/sidebar-select/relates-to.tsx
@@ -8,7 +8,7 @@ import useToast from "hooks/use-toast";
import useUser from "hooks/use-user";
// icons
import { X } from "lucide-react";
-import { BlockerIcon, RelatedIcon } from "components/icons";
+import { BlockerIcon, RelatedIcon } from "@plane/ui";
// components
import { ExistingIssuesListModal } from "components/core";
// services
diff --git a/web/components/issues/sidebar-select/state.tsx b/web/components/issues/sidebar-select/state.tsx
index ca62831b6..cea535c2f 100644
--- a/web/components/issues/sidebar-select/state.tsx
+++ b/web/components/issues/sidebar-select/state.tsx
@@ -8,9 +8,7 @@ import useSWR from "swr";
import { ProjectStateService } from "services/project";
// ui
import { CustomSelect } from "components/ui";
-import { Spinner } from "@plane/ui";
-// icons
-import { StateGroupIcon } from "components/icons";
+import { Spinner, StateGroupIcon } from "@plane/ui";
// helpers
import { getStatesList } from "helpers/state.helper";
import { addSpaceIfCamelCase } from "helpers/string.helper";
diff --git a/web/components/issues/sidebar.tsx b/web/components/issues/sidebar.tsx
index b695c3d8f..d92b58b98 100644
--- a/web/components/issues/sidebar.tsx
+++ b/web/components/issues/sidebar.tsx
@@ -30,27 +30,16 @@ import {
SidebarRelatesSelect,
} from "components/issues";
// ui
-import { CustomDatePicker, Icon } from "components/ui";
+import { CustomDatePicker } from "components/ui";
// icons
-import {
- LinkIcon,
- CalendarDaysIcon,
- TrashIcon,
- PlusIcon,
- Squares2X2Icon,
- ChartBarIcon,
- UserGroupIcon,
- PlayIcon,
- UserIcon,
- RectangleGroupIcon,
-} from "@heroicons/react/24/outline";
+import { Bell, CalendarDays, LinkIcon, Plus, Signal, Trash2, Triangle, User2 } from "lucide-react";
+import { ContrastIcon, DiceIcon, DoubleCircleIcon, UserGroupIcon } from "@plane/ui";
// helpers
import { copyTextToClipboard } from "helpers/string.helper";
// types
import type { ICycle, IIssue, IIssueLink, linkDetails, IModule } from "types";
// fetch-keys
import { ISSUE_DETAILS, PROJECT_ISSUES_ACTIVITY } from "constants/fetch-keys";
-import { ContrastIcon } from "components/icons";
type Props = {
control: any;
@@ -312,7 +301,7 @@ export const IssueDetailsSidebar: React.FC = ({
else handleSubscribe();
}}
>
-
+
{loading ? "Loading..." : subscribed ? "Unsubscribe" : "Subscribe"}
)}
@@ -331,7 +320,7 @@ export const IssueDetailsSidebar: React.FC = ({
className="rounded-md border border-red-500 p-2 text-red-500 shadow-sm duration-300 hover:bg-red-500/20 focus:outline-none"
onClick={() => setDeleteIssueModal(true)}
>
-
+
)}
@@ -344,7 +333,7 @@ export const IssueDetailsSidebar: React.FC = ({
{(fieldsToShow.includes("all") || fieldsToShow.includes("state")) && (
@@ -386,7 +375,7 @@ export const IssueDetailsSidebar: React.FC
= ({
{(fieldsToShow.includes("all") || fieldsToShow.includes("priority")) && (
@@ -407,7 +396,7 @@ export const IssueDetailsSidebar: React.FC
= ({
{(fieldsToShow.includes("all") || fieldsToShow.includes("estimate")) && isEstimateActive && (
@@ -432,7 +421,7 @@ export const IssueDetailsSidebar: React.FC
= ({
{(fieldsToShow.includes("all") || fieldsToShow.includes("parent")) && (
@@ -534,7 +523,7 @@ export const IssueDetailsSidebar: React.FC
= ({
{(fieldsToShow.includes("all") || fieldsToShow.includes("startDate")) && (
@@ -562,7 +551,7 @@ export const IssueDetailsSidebar: React.FC
= ({
{(fieldsToShow.includes("all") || fieldsToShow.includes("dueDate")) && (
@@ -609,7 +598,7 @@ export const IssueDetailsSidebar: React.FC
= ({
{(fieldsToShow.includes("all") || fieldsToShow.includes("module")) && (
@@ -647,7 +636,7 @@ export const IssueDetailsSidebar: React.FC
= ({
onClick={() => setLinkModal(true)}
disabled={uneditable}
>
-
+
)}
diff --git a/web/components/issues/view-select/assignee.tsx b/web/components/issues/view-select/assignee.tsx
index dba80eba6..089e04691 100644
--- a/web/components/issues/view-select/assignee.tsx
+++ b/web/components/issues/view-select/assignee.tsx
@@ -3,8 +3,9 @@ import { useRouter } from "next/router";
// services
import { TrackEventService } from "services/track_event.service";
// ui
-import { AssigneesList, Avatar, CustomSearchSelect, Icon } from "components/ui";
+import { AssigneesList, Avatar, CustomSearchSelect } from "components/ui";
import { Tooltip } from "@plane/ui";
+import { User2 } from "lucide-react";
// types
import { IUser, IIssue } from "types";
// hooks
@@ -72,7 +73,7 @@ export const ViewAssigneeSelect: React.FC
= ({
) : (
-
+
)}
diff --git a/web/components/issues/view-select/estimate.tsx b/web/components/issues/view-select/estimate.tsx
index 0cbce8281..8bf702ada 100644
--- a/web/components/issues/view-select/estimate.tsx
+++ b/web/components/issues/view-select/estimate.tsx
@@ -8,7 +8,7 @@ import useEstimateOption from "hooks/use-estimate-option";
import { CustomSelect } from "components/ui";
import { Tooltip } from "@plane/ui";
// icons
-import { PlayIcon } from "@heroicons/react/24/outline";
+import { Triangle } from "lucide-react";
// types
import { IUser, IIssue } from "types";
@@ -45,7 +45,7 @@ export const ViewEstimateSelect: React.FC
= ({
const estimateLabels = (
-
+
{estimateValue ?? "None"}
@@ -80,7 +80,7 @@ export const ViewEstimateSelect: React.FC = ({
<>
-
+
None
>
@@ -89,7 +89,7 @@ export const ViewEstimateSelect: React.FC = ({
<>
-
+
{estimate.value}
>
diff --git a/web/components/issues/view-select/label.tsx b/web/components/issues/view-select/label.tsx
index e3e54f4d3..5a1043fb0 100644
--- a/web/components/issues/view-select/label.tsx
+++ b/web/components/issues/view-select/label.tsx
@@ -9,7 +9,7 @@ import { CreateLabelModal } from "components/labels";
import { CustomSearchSelect } from "components/ui";
import { Tooltip } from "@plane/ui";
// icons
-import { PlusIcon, TagIcon } from "@heroicons/react/24/outline";
+import { Plus, Tag } from "lucide-react";
// types
import { IUser, IIssue, IIssueLabels } from "types";
// fetch-keys
@@ -107,7 +107,7 @@ export const ViewLabelSelect: FC = ({
>
) : (
<>
-
+
>
)}
@@ -121,7 +121,7 @@ export const ViewLabelSelect: FC = ({
onClick={() => setLabelModal(true)}
>
-
+
Create New Label
diff --git a/web/components/issues/view-select/priority.tsx b/web/components/issues/view-select/priority.tsx
index 5d9bca529..419013a30 100644
--- a/web/components/issues/view-select/priority.tsx
+++ b/web/components/issues/view-select/priority.tsx
@@ -4,9 +4,7 @@ import { useRouter } from "next/router";
import { TrackEventService } from "services/track_event.service";
// ui
import { CustomSelect } from "components/ui";
-import { Tooltip } from "@plane/ui";
-// icons
-import { PriorityIcon } from "components/icons/priority-icon";
+import { Tooltip, PriorityIcon } from "@plane/ui";
// helpers
import { capitalizeFirstLetter } from "helpers/string.helper";
// types
@@ -76,7 +74,7 @@ export const ViewPrioritySelect: React.FC = ({
= ({
{PRIORITIES?.map((priority) => (
<>
-
+
{priority ?? "None"}
>
diff --git a/web/components/labels/create-label-modal.tsx b/web/components/labels/create-label-modal.tsx
index fa05ae93f..d55e1233d 100644
--- a/web/components/labels/create-label-modal.tsx
+++ b/web/components/labels/create-label-modal.tsx
@@ -9,7 +9,7 @@ import { IssueLabelService } from "services/issue";
// ui
import { Button, Input } from "@plane/ui";
// icons
-import { ChevronDownIcon } from "@heroicons/react/24/outline";
+import { ChevronDown } from "lucide-react";
// types
import type { IUser, IIssueLabels, IState } from "types";
// constants
@@ -120,7 +120,7 @@ export const CreateLabelModal: React.FC = ({ isOpen, projectId, handleClo
}}
/>
)}
- = ({ isOpen, onClose, data, user
diff --git a/web/components/labels/labels-list-modal.tsx b/web/components/labels/labels-list-modal.tsx
index e73ea3c5b..078a07d86 100644
--- a/web/components/labels/labels-list-modal.tsx
+++ b/web/components/labels/labels-list-modal.tsx
@@ -3,7 +3,8 @@ import { useRouter } from "next/router";
import useSWR from "swr";
import { Combobox, Dialog, Transition } from "@headlessui/react";
// icons
-import { RectangleStackIcon, MagnifyingGlassIcon } from "@heroicons/react/24/outline";
+import { LayerStackIcon } from "@plane/ui";
+import { Search } from "lucide-react";
// services
import { IssueLabelService } from "services/issue";
// types
@@ -97,7 +98,7 @@ export const LabelsListModal: React.FC = ({ isOpen, handleClose, parent,
-
@@ -156,7 +157,7 @@ export const LabelsListModal: React.FC
= ({ isOpen, handleClose, parent,
{query !== "" && filteredLabels.length === 0 && (
-
diff --git a/web/components/labels/single-label-group.tsx b/web/components/labels/single-label-group.tsx
index 1e8ec3086..74442d6c1 100644
--- a/web/components/labels/single-label-group.tsx
+++ b/web/components/labels/single-label-group.tsx
@@ -11,8 +11,7 @@ import { IssueLabelService } from "services/issue";
// ui
import { CustomMenu } from "components/ui";
// icons
-import { ChevronDownIcon, XMarkIcon, PlusIcon, PencilIcon, TrashIcon } from "@heroicons/react/24/outline";
-import { Component, X } from "lucide-react";
+import { ChevronDown, Component, Pencil, Plus, Trash2, X } from "lucide-react";
// types
import { IUser, IIssueLabels } from "types";
// fetch-keys
@@ -87,26 +86,26 @@ export const SingleLabelGroup: React.FC
= ({
addLabelToGroup(label)}>
-
+
Add more labels
editLabel(label)}>
-
+
Edit label
-
+
Delete label
-
@@ -149,13 +148,13 @@ export const SingleLabelGroup: React.FC = ({
>
removeFromGroup(child)}>
-
+
Remove from group
editLabel(child)}>
-
+
Edit label
diff --git a/web/components/labels/single-label.tsx b/web/components/labels/single-label.tsx
index c163a3735..c23dbf2ff 100644
--- a/web/components/labels/single-label.tsx
+++ b/web/components/labels/single-label.tsx
@@ -7,8 +7,7 @@ import { CustomMenu } from "components/ui";
// types
import { IIssueLabels } from "types";
//icons
-import { PencilIcon } from "@heroicons/react/24/outline";
-import { Component, X } from "lucide-react";
+import { Component, Pencil, X } from "lucide-react";
type Props = {
label: IIssueLabels;
@@ -17,12 +16,7 @@ type Props = {
handleLabelDelete: () => void;
};
-export const SingleLabel: React.FC = ({
- label,
- addLabelToGroup,
- editLabel,
- handleLabelDelete,
-}) => {
+export const SingleLabel: React.FC = ({ label, addLabelToGroup, editLabel, handleLabelDelete }) => {
const [isMenuActive, setIsMenuActive] = useState(false);
const actionSectionRef = useRef(null);
@@ -60,16 +54,13 @@ export const SingleLabel: React.FC = ({
editLabel(label)}>
-
+
Edit label
-
+
diff --git a/web/components/modules/delete-module-modal.tsx b/web/components/modules/delete-module-modal.tsx
index 7b362ba12..6d06c493d 100644
--- a/web/components/modules/delete-module-modal.tsx
+++ b/web/components/modules/delete-module-modal.tsx
@@ -13,7 +13,7 @@ import useToast from "hooks/use-toast";
// ui
import { Button } from "@plane/ui";
// icons
-import { ExclamationTriangleIcon } from "@heroicons/react/24/outline";
+import { AlertTriangle } from "lucide-react";
// types
import type { IUser, IModule } from "types";
// fetch-keys
@@ -95,7 +95,7 @@ export const DeleteModuleModal: React.FC = ({ isOpen, setIsOpen, data, us
diff --git a/web/components/modules/gantt-chart/blocks.tsx b/web/components/modules/gantt-chart/blocks.tsx
index f35d88e4c..5b527073a 100644
--- a/web/components/modules/gantt-chart/blocks.tsx
+++ b/web/components/modules/gantt-chart/blocks.tsx
@@ -1,9 +1,7 @@
import { useRouter } from "next/router";
// ui
-import { Tooltip } from "@plane/ui";
-// icons
-import { ModuleStatusIcon } from "components/icons";
+import { Tooltip, ModuleStatusIcon } from "@plane/ui";
// helpers
import { renderShortDate } from "helpers/date-time.helper";
// types
diff --git a/web/components/modules/select/lead.tsx b/web/components/modules/select/lead.tsx
index 8ca5c66c0..59b2987ab 100644
--- a/web/components/modules/select/lead.tsx
+++ b/web/components/modules/select/lead.tsx
@@ -6,7 +6,7 @@ import { ProjectService } from "services/project";
// ui
import { Avatar, CustomSearchSelect } from "components/ui";
// icons
-import { UserCircleIcon } from "@heroicons/react/24/outline";
+import { UserCircle } from "lucide-react";
// fetch-keys
import { PROJECT_MEMBERS } from "constants/fetch-keys";
@@ -47,11 +47,7 @@ export const ModuleLeadSelect: React.FC = ({ value, onChange }) => {
value={value}
label={
- {selectedOption ? (
-
- ) : (
-
- )}
+ {selectedOption ?
:
}
{selectedOption ? selectedOption?.display_name :
Lead}
}
diff --git a/web/components/modules/select/members.tsx b/web/components/modules/select/members.tsx
index ce95fae9d..1947c3cb4 100644
--- a/web/components/modules/select/members.tsx
+++ b/web/components/modules/select/members.tsx
@@ -6,7 +6,7 @@ import { ProjectService } from "services/project";
// ui
import { AssigneesList, Avatar, CustomSearchSelect } from "components/ui";
// icons
-import { UserGroupIcon } from "@heroicons/react/24/outline";
+import { UserGroupIcon } from "@plane/ui";
// fetch-keys
import { PROJECT_MEMBERS } from "constants/fetch-keys";
diff --git a/web/components/modules/select/status.tsx b/web/components/modules/select/status.tsx
index 8c16ca14c..715b09c52 100644
--- a/web/components/modules/select/status.tsx
+++ b/web/components/modules/select/status.tsx
@@ -5,8 +5,7 @@ import { Controller, FieldError, Control } from "react-hook-form";
// ui
import { CustomSelect } from "components/ui";
// icons
-import { Squares2X2Icon } from "@heroicons/react/24/outline";
-import { ModuleStatusIcon } from "components/icons";
+import { DoubleCircleIcon, ModuleStatusIcon } from "@plane/ui";
// types
import type { IModule } from "types";
// constants
@@ -26,17 +25,11 @@ export const ModuleStatusSelect: React.FC = ({ control, error }) => (
+
{value ? (
) : (
-
+
)}
{MODULE_STATUS.find((s) => s.value === value)?.label ?? (
Status
diff --git a/web/components/modules/sidebar-select/select-lead.tsx b/web/components/modules/sidebar-select/select-lead.tsx
index 88ddd73b4..8d7e770cb 100644
--- a/web/components/modules/sidebar-select/select-lead.tsx
+++ b/web/components/modules/sidebar-select/select-lead.tsx
@@ -6,7 +6,7 @@ import { ProjectService } from "services/project";
// ui
import { Avatar, CustomSearchSelect } from "components/ui";
// icons
-import { UserCircleIcon } from "@heroicons/react/24/outline";
+import { UserCircle2 } from "lucide-react";
// fetch-keys
import { PROJECT_MEMBERS } from "constants/fetch-keys";
@@ -46,7 +46,7 @@ export const SidebarLeadSelect: FC
= (props) => {
return (
-
+
Lead
diff --git a/web/components/modules/sidebar-select/select-members.tsx b/web/components/modules/sidebar-select/select-members.tsx
index b37acc4c1..f31e9b1a4 100644
--- a/web/components/modules/sidebar-select/select-members.tsx
+++ b/web/components/modules/sidebar-select/select-members.tsx
@@ -8,8 +8,8 @@ import useSWR from "swr";
import { ProjectService } from "services/project";
// ui
import { AssigneesList, Avatar, CustomSearchSelect } from "components/ui";
+import { UserGroupIcon } from "@plane/ui";
// icons
-import { UserGroupIcon } from "@heroicons/react/24/outline";
// fetch-keys
import { PROJECT_MEMBERS } from "constants/fetch-keys";
diff --git a/web/components/modules/sidebar-select/select-status.tsx b/web/components/modules/sidebar-select/select-status.tsx
index f67f40222..c7b40b316 100644
--- a/web/components/modules/sidebar-select/select-status.tsx
+++ b/web/components/modules/sidebar-select/select-status.tsx
@@ -3,9 +3,8 @@ import React from "react";
// react-hook-form
import { Control, Controller, UseFormWatch } from "react-hook-form";
// ui
-import { Squares2X2Icon } from "@heroicons/react/24/outline";
+import { DoubleCircleIcon } from "@plane/ui";
import { CustomSelect } from "components/ui";
-// icons
// types
import { IModule } from "types";
// common
@@ -21,7 +20,7 @@ type Props = {
export const SidebarStatusSelect: React.FC
= ({ control, submitChanges, watch }) => (
@@ -31,11 +30,7 @@ export const SidebarStatusSelect: React.FC
= ({ control, submitChanges, w
render={({ field: { value } }) => (
+
= ({ control, submitChanges, w
{MODULE_STATUS.map((option) => (
<>
-
+
{option.label}
>
diff --git a/web/components/modules/sidebar.tsx b/web/components/modules/sidebar.tsx
index 90f33effe..3e1e25ccd 100644
--- a/web/components/modules/sidebar.tsx
+++ b/web/components/modules/sidebar.tsx
@@ -2,15 +2,6 @@ import React, { useEffect, useState } from "react";
import { useRouter } from "next/router";
import { mutate } from "swr";
import { Controller, useForm } from "react-hook-form";
-import {
- ArrowLongRightIcon,
- CalendarDaysIcon,
- ChartPieIcon,
- ChevronDownIcon,
- DocumentIcon,
- PlusIcon,
- TrashIcon,
-} from "@heroicons/react/24/outline";
import { Disclosure, Popover, Transition } from "@headlessui/react";
import DatePicker from "react-datepicker";
// services
@@ -26,8 +17,17 @@ import ProgressChart from "components/core/sidebar/progress-chart";
import { CustomMenu, CustomSelect } from "components/ui";
import { Loader, ProgressBar } from "@plane/ui";
// icon
-import { ExclamationIcon } from "components/icons";
-import { LinkIcon } from "@heroicons/react/20/solid";
+import {
+ AlertCircle,
+ CalendarDays,
+ ChevronDown,
+ File,
+ LinkIcon,
+ MoveRight,
+ PieChart,
+ Plus,
+ Trash2,
+} from "lucide-react";
// helpers
import { renderDateFormat, renderShortDateWithYearFormat } from "helpers/date-time.helper";
import { capitalizeFirstLetter, copyTextToClipboard } from "helpers/string.helper";
@@ -258,7 +258,7 @@ export const ModuleDetailsSidebar: React.FC = ({ module, isOpen, moduleIs
module.start_date ? "" : "text-custom-text-200"
}`}
>
-
+
{renderShortDateWithYearFormat(new Date(`${module.start_date}`), "Start date")}
@@ -292,7 +292,7 @@ export const ModuleDetailsSidebar: React.FC = ({ module, isOpen, moduleIs
)}
-
+
{({}) => (
@@ -302,7 +302,7 @@ export const ModuleDetailsSidebar: React.FC = ({ module, isOpen, moduleIs
module.target_date ? "" : "text-custom-text-200"
}`}
>
-
+
{renderShortDateWithYearFormat(new Date(`${module?.target_date}`), "End date")}
@@ -348,7 +348,7 @@ export const ModuleDetailsSidebar: React.FC = ({ module, isOpen, moduleIs
setModuleDeleteModal(true)}>
-
+
Delete
@@ -394,7 +394,7 @@ export const ModuleDetailsSidebar: React.FC = ({ module, isOpen, moduleIs
@@ -427,14 +427,11 @@ export const ModuleDetailsSidebar: React.FC
= ({ module, isOpen, moduleIs
{isStartValid && isEndValid ? (
-
+
) : (
-
+
Invalid date. Please enter valid date.
@@ -448,7 +445,7 @@ export const ModuleDetailsSidebar: React.FC
= ({ module, isOpen, moduleIs
-
+
Pending Issues -{" "}
@@ -497,14 +494,11 @@ export const ModuleDetailsSidebar: React.FC = ({ module, isOpen, moduleIs
{module.total_issues > 0 ? (
-
+
) : (
-
+
No issues found. Please add issue.
@@ -547,7 +541,7 @@ export const ModuleDetailsSidebar: React.FC
= ({ module, isOpen, moduleIs
className="grid h-7 w-7 place-items-center rounded p-1 outline-none duration-300 hover:bg-custom-background-90"
onClick={() => setModuleLinkModal(true)}
>
-
+
diff --git a/web/components/modules/single-module-card.tsx b/web/components/modules/single-module-card.tsx
index 981815736..542b902ed 100644
--- a/web/components/modules/single-module-card.tsx
+++ b/web/components/modules/single-module-card.tsx
@@ -12,9 +12,7 @@ import { DeleteModuleModal } from "components/modules";
import { AssigneesList, CustomMenu } from "components/ui";
import { Tooltip } from "@plane/ui";
// icons
-import { CalendarDaysIcon, LinkIcon, PencilIcon, StarIcon, TrashIcon } from "@heroicons/react/24/outline";
-import { TargetIcon } from "components/icons";
-
+import { CalendarDays, LinkIcon, Pencil, Star, Target, Trash2 } from "lucide-react";
// helpers
import { copyTextToClipboard, truncateText } from "helpers/string.helper";
import { renderShortDateWithYearFormat } from "helpers/date-time.helper";
@@ -134,24 +132,24 @@ export const SingleModuleCard: React.FC
= ({ module, handleEditModule, us
{module.is_favorite ? (
-
+
) : (
-
+
)}
-
+
Edit module
-
+
Delete module
@@ -166,12 +164,12 @@ export const SingleModuleCard: React.FC = ({ module, handleEditModule, us
-
+
Start:
{renderShortDateWithYearFormat(startDate, "Not set")}
-
+
End:
{renderShortDateWithYearFormat(endDate, "Not set")}
diff --git a/web/components/notifications/notification-card.tsx b/web/components/notifications/notification-card.tsx
index ec3c8300b..473998964 100644
--- a/web/components/notifications/notification-card.tsx
+++ b/web/components/notifications/notification-card.tsx
@@ -7,8 +7,9 @@ import { useRouter } from "next/router";
import useToast from "hooks/use-toast";
// icons
-import { CustomMenu, Icon } from "components/ui";
-import { Tooltip } from "@plane/ui";
+import { CustomMenu } from "components/ui";
+import { ArchiveIcon, Tooltip } from "@plane/ui";
+import { ArchiveRestore, Clock, User2 } from "lucide-react";
// helper
import { stripHTML, replaceUnderscoreIfSnakeCase, truncateText } from "helpers/string.helper";
@@ -85,7 +86,7 @@ export const NotificationCard: React.FC
= (props) => {
) : notification.triggered_by_details.display_name?.[0] ? (
notification.triggered_by_details.display_name?.[0]?.toUpperCase()
) : (
-
+
)}
@@ -144,7 +145,7 @@ export const NotificationCard: React.FC
= (props) => {
{notification.snoozed_till ? (
-
+
Till {renderShortDate(notification.snoozed_till)}, {render12HourFormatTime(notification.snoozed_till)}
@@ -172,7 +173,11 @@ export const NotificationCard: React.FC = (props) => {
{
id: 2,
name: notification.archived_at ? "Unarchive" : "Archive",
- icon: notification.archived_at ? "unarchive" : "archive",
+ icon: notification.archived_at ? (
+
+ ) : (
+
+ ),
onClick: () => {
markNotificationArchivedStatus(notification.id).then(() => {
setToastAlert({
@@ -193,7 +198,7 @@ export const NotificationCard: React.FC = (props) => {
key={item.id}
className="text-sm flex w-full items-center gap-x-2 bg-custom-background-80 hover:bg-custom-background-100 p-0.5 rounded outline-none"
>
-
+ {item.icon}
))}
@@ -206,7 +211,7 @@ export const NotificationCard: React.FC = (props) => {
}}
customButton={
-
+
}
optionsClassName="!z-20"
diff --git a/web/components/notifications/notification-header.tsx b/web/components/notifications/notification-header.tsx
index 7bc390453..3ccf29793 100644
--- a/web/components/notifications/notification-header.tsx
+++ b/web/components/notifications/notification-header.tsx
@@ -1,8 +1,12 @@
import React from "react";
// components
-import { CustomMenu, Icon } from "components/ui";
-import { Tooltip } from "@plane/ui";
+import { CustomMenu } from "components/ui";
+import { ArchiveIcon, Tooltip } from "@plane/ui";
+
+//icon
+import { ArrowLeft, CheckCheck, Clock, ListFilter, MoreVertical, RefreshCw, X } from "lucide-react";
+
// helpers
import { getNumberCount } from "helpers/string.helper";
@@ -76,7 +80,7 @@ export const NotificationHeader: React.FC = (props) =>
notificationMutate();
}}
>
-
+
@@ -88,19 +92,19 @@ export const NotificationHeader: React.FC = (props) =>
setReadNotification((prev) => !prev);
}}
>
-
+
-
+
}
>
-
+
Mark all as read
@@ -113,7 +117,7 @@ export const NotificationHeader: React.FC = (props) =>
}}
>
-
+
Show snoozed
@@ -126,14 +130,14 @@ export const NotificationHeader: React.FC = (props) =>
}}
>
closePopover()}>
-
+
@@ -149,7 +153,7 @@ export const NotificationHeader: React.FC = (props) =>
}}
>
-
+
{snoozed
? "Snoozed Notifications"
diff --git a/web/components/notifications/notification-popover.tsx b/web/components/notifications/notification-popover.tsx
index 8a9f2822f..c84fddcc7 100644
--- a/web/components/notifications/notification-popover.tsx
+++ b/web/components/notifications/notification-popover.tsx
@@ -7,7 +7,7 @@ import { EmptyState } from "components/common";
import { SnoozeNotificationModal, NotificationCard, NotificationHeader } from "components/notifications";
import { Loader, Tooltip } from "@plane/ui";
// icons
-import { NotificationsOutlined } from "@mui/icons-material";
+import { Bell } from "lucide-react";
// images
import emptyNotification from "public/empty-state/notification.svg";
// helpers
@@ -75,7 +75,7 @@ export const NotificationPopover = () => {
: "text-custom-sidebar-text-200 hover:bg-custom-sidebar-background-80"
} ${store?.theme?.sidebarCollapsed ? "justify-center" : ""}`}
>
-
+
{store?.theme?.sidebarCollapsed ? null : Notifications}
{totalNotificationCount && totalNotificationCount > 0 ? (
store?.theme?.sidebarCollapsed ? (
diff --git a/web/components/notifications/select-snooze-till-modal.tsx b/web/components/notifications/select-snooze-till-modal.tsx
index 2a64853dd..4688104f4 100644
--- a/web/components/notifications/select-snooze-till-modal.tsx
+++ b/web/components/notifications/select-snooze-till-modal.tsx
@@ -8,7 +8,8 @@ import { getAllTimeIn30MinutesInterval } from "helpers/date-time.helper";
import useToast from "hooks/use-toast";
// components
import { Button } from "@plane/ui";
-import { Icon, CustomDatePicker, CustomSelect } from "components/ui";
+import { CustomDatePicker, CustomSelect } from "components/ui";
+import { X } from "lucide-react";
// types
import type { IUserNotification } from "types";
@@ -150,7 +151,7 @@ export const SnoozeNotificationModal: FC = (props) => {
-
+
diff --git a/web/components/onboarding/invite-members.tsx b/web/components/onboarding/invite-members.tsx
index c33101b5b..207ecedb1 100644
--- a/web/components/onboarding/invite-members.tsx
+++ b/web/components/onboarding/invite-members.tsx
@@ -13,8 +13,7 @@ import { Button, Input } from "@plane/ui";
// hooks
import useDynamicDropdownPosition from "hooks/use-dynamic-dropdown";
// icons
-import { ChevronDownIcon } from "@heroicons/react/20/solid";
-import { PlusIcon, XMarkIcon, CheckIcon } from "@heroicons/react/24/outline";
+import { Check, ChevronDown, Plus, X } from "lucide-react";
// types
import { IUser, IWorkspace, TOnboardingSteps } from "types";
// constants
@@ -108,7 +107,7 @@ const InviteMemberForm: React.FC = (props) => {
className="flex items-center px-2.5 py-2 text-xs justify-between gap-1 w-full rounded-md border border-custom-border-300 shadow-sm duration-300 focus:outline-none"
>
{ROLE[value]}
-
+
= (props) => {
{({ selected }) => (
{value}
- {selected &&
}
+ {selected &&
}
)}
@@ -157,7 +156,7 @@ const InviteMemberForm: React.FC = (props) => {
className="hidden group-hover:grid self-center place-items-center rounded -ml-3"
onClick={() => remove(index)}
>
-
+
)}
@@ -255,7 +254,7 @@ export const InviteMembers: React.FC
= (props) => {
className="flex items-center gap-2 outline-custom-primary-100 bg-transparent text-custom-primary-100 text-xs font-medium py-2 pr-3"
onClick={appendField}
>
-
+
Add another
diff --git a/web/components/onboarding/join-workspaces.tsx b/web/components/onboarding/join-workspaces.tsx
index 736480b55..d846614dd 100644
--- a/web/components/onboarding/join-workspaces.tsx
+++ b/web/components/onboarding/join-workspaces.tsx
@@ -9,7 +9,7 @@ import useUser from "hooks/use-user";
// ui
import { Button } from "@plane/ui";
// icons
-import { CheckCircleIcon } from "@heroicons/react/24/outline";
+import { CheckCircle } from "lucide-react";
// helpers
import { truncateText } from "helpers/string.helper";
// types
@@ -110,7 +110,7 @@ export const JoinWorkspaces: React.FC = ({ finishOnboarding, stepChange,
{ROLE[invitation.role]}
-
+
);
diff --git a/web/components/onboarding/tour/root.tsx b/web/components/onboarding/tour/root.tsx
index 001e13be8..9b3384f44 100644
--- a/web/components/onboarding/tour/root.tsx
+++ b/web/components/onboarding/tour/root.tsx
@@ -9,7 +9,7 @@ import { TourSidebar } from "components/onboarding";
// ui
import { Button } from "@plane/ui";
// icons
-import { XMarkIcon } from "@heroicons/react/24/outline";
+import { X } from "lucide-react";
// images
import PlaneWhiteLogo from "public/plane-logos/white-horizontal.svg";
import IssuesTour from "public/onboarding/issues.webp";
@@ -121,7 +121,7 @@ export const TourRoot: React.FC = ({ onComplete }) => {
className="fixed top-[19%] sm:top-[11.5%] right-[9%] md:right-[24%] lg:right-[19%] border border-custom-text-100 rounded-full p-1 translate-x-1/2 -translate-y-1/2 z-10 cursor-pointer"
onClick={onComplete}
>
-
+
diff --git a/web/components/onboarding/tour/sidebar.tsx b/web/components/onboarding/tour/sidebar.tsx
index dce49f098..dbabab4f5 100644
--- a/web/components/onboarding/tour/sidebar.tsx
+++ b/web/components/onboarding/tour/sidebar.tsx
@@ -1,11 +1,6 @@
// icons
-import {
- ArticleOutlined,
- ContrastOutlined,
- DatasetOutlined,
- FilterNoneOutlined,
- PhotoFilterOutlined,
-} from "@mui/icons-material";
+import { ContrastIcon, DiceIcon, LayersIcon, PhotoFilterIcon } from "@plane/ui";
+import { FileText } from "lucide-react";
// types
import { TTourSteps } from "./root";
@@ -15,23 +10,23 @@ const sidebarOptions: {
}[] = [
{
key: "issues",
- Icon: FilterNoneOutlined,
+ Icon: LayersIcon,
},
{
key: "cycles",
- Icon: ContrastOutlined,
+ Icon: ContrastIcon,
},
{
key: "modules",
- Icon: DatasetOutlined,
+ Icon: DiceIcon,
},
{
key: "views",
- Icon: PhotoFilterOutlined,
+ Icon: PhotoFilterIcon,
},
{
key: "pages",
- Icon: ArticleOutlined,
+ Icon: FileText,
},
];
@@ -58,12 +53,7 @@ export const TourSidebar: React.FC
= ({ step, setStep }) => (
}`}
onClick={() => setStep(option.key)}
>
-
+
{option.key}
))}
diff --git a/web/components/pages/create-block.tsx b/web/components/pages/create-block.tsx
index 22f140bc3..1decabae0 100644
--- a/web/components/pages/create-block.tsx
+++ b/web/components/pages/create-block.tsx
@@ -1,7 +1,7 @@
import { FC } from "react";
import { useRouter } from "next/router";
import { mutate } from "swr";
-import { PaperAirplaneIcon } from "@heroicons/react/24/outline";
+import { SendHorizonal } from "lucide-react";
import { Controller, useForm } from "react-hook-form";
// services
import { PageService } from "services/page.service";
@@ -114,7 +114,7 @@ export const CreateBlock: FC = ({ user }) => {
diff --git a/web/components/pages/create-update-block-inline.tsx b/web/components/pages/create-update-block-inline.tsx
index f87b1e6f3..45d463555 100644
--- a/web/components/pages/create-update-block-inline.tsx
+++ b/web/components/pages/create-update-block-inline.tsx
@@ -1,7 +1,7 @@
import { useCallback, useEffect, useState, FC, Dispatch, SetStateAction, useRef } from "react";
import { useRouter } from "next/router";
import { mutate } from "swr";
-import { SparklesIcon } from "@heroicons/react/24/outline";
+import { Sparkle } from "lucide-react";
import { Controller, useForm } from "react-hook-form";
// services
import { PageService } from "services/page.service";
@@ -344,7 +344,7 @@ export const CreateUpdateBlockInline: FC = ({
"Generating response..."
) : (
<>
- I{"'"}m feeling lucky
+ I{"'"}m feeling lucky
>
)}
@@ -354,7 +354,7 @@ export const CreateUpdateBlockInline: FC = ({
className="ml-2 flex items-center gap-1 rounded px-1.5 py-1 text-xs hover:bg-custom-background-80"
onClick={() => setGptAssistantModal(true)}
>
-
+
AI
diff --git a/web/components/pages/delete-page-modal.tsx b/web/components/pages/delete-page-modal.tsx
index ef6f7c909..f66f178c1 100644
--- a/web/components/pages/delete-page-modal.tsx
+++ b/web/components/pages/delete-page-modal.tsx
@@ -13,7 +13,7 @@ import useToast from "hooks/use-toast";
// ui
import { Button } from "@plane/ui";
// icons
-import { ExclamationTriangleIcon } from "@heroicons/react/24/outline";
+import { AlertTriangle } from "lucide-react";
// types
import type { IUser, IPage } from "types";
// fetch-keys
@@ -114,7 +114,7 @@ export const DeletePageModal: React.FC = ({ isOpen, s
diff --git a/web/components/pages/pages-list/recent-pages-list.tsx b/web/components/pages/pages-list/recent-pages-list.tsx
index 95f6fdcdd..09225fc04 100644
--- a/web/components/pages/pages-list/recent-pages-list.tsx
+++ b/web/components/pages/pages-list/recent-pages-list.tsx
@@ -12,7 +12,7 @@ import { PagesView } from "components/pages";
import { EmptyState } from "components/common";
import { Loader } from "@plane/ui";
// icons
-import { PlusIcon } from "@heroicons/react/24/outline";
+import { Plus } from "lucide-react";
// images
import emptyPage from "public/empty-state/page.svg";
// helpers
@@ -46,9 +46,7 @@ export const RecentPagesList: React.FC = ({ viewType }) => {
return (
-
- {replaceUnderscoreIfSnakeCase(key)}
-
+
{replaceUnderscoreIfSnakeCase(key)}
);
@@ -59,7 +57,7 @@ export const RecentPagesList: React.FC = ({ viewType }) => {
description="You can think of Pages as an AI-powered notepad."
image={emptyPage}
primaryButton={{
- icon: ,
+ icon: ,
text: "New Page",
onClick: () => {
const e = new KeyboardEvent("keydown", {
diff --git a/web/components/pages/pages-view.tsx b/web/components/pages/pages-view.tsx
index 942b68ba8..d3eb8af71 100644
--- a/web/components/pages/pages-view.tsx
+++ b/web/components/pages/pages-view.tsx
@@ -15,7 +15,7 @@ import { CreateUpdatePageModal, DeletePageModal, SinglePageDetailedItem, SingleP
import { EmptyState } from "components/common";
import { Loader } from "@plane/ui";
// icons
-import { PlusIcon } from "@heroicons/react/24/outline";
+import { Plus } from "lucide-react";
// images
import emptyPage from "public/empty-state/page.svg";
// types
@@ -255,7 +255,7 @@ export const PagesView: React.FC = ({ pages, viewType }) => {
description="You can think of Pages as an AI-powered notepad."
image={emptyPage}
primaryButton={{
- icon: ,
+ icon: ,
text: "New Page",
onClick: () => {
const e = new KeyboardEvent("keydown", {
diff --git a/web/components/pages/single-page-block.tsx b/web/components/pages/single-page-block.tsx
index ffad1a200..a9b16be96 100644
--- a/web/components/pages/single-page-block.tsx
+++ b/web/components/pages/single-page-block.tsx
@@ -18,18 +18,9 @@ import { CreateUpdateBlockInline } from "components/pages";
import { RichTextEditor } from "@plane/rich-text-editor";
// ui
import { CustomMenu } from "components/ui";
-import { TextArea } from "@plane/ui";
+import { LayersIcon, TextArea } from "@plane/ui";
// icons
-import { LayerDiagonalIcon } from "components/icons";
-import { ArrowPathIcon, LinkIcon } from "@heroicons/react/20/solid";
-import {
- BoltIcon,
- CheckIcon,
- EllipsisVerticalIcon,
- PencilIcon,
- SparklesIcon,
- TrashIcon,
-} from "@heroicons/react/24/outline";
+import { RefreshCw, LinkIcon, Zap, Check, MoreVertical, Pencil, Sparkle, Trash2 } from "lucide-react";
// helpers
import { copyTextToClipboard } from "helpers/string.helper";
// types
@@ -312,8 +303,8 @@ export const SinglePageBlock: React.FC = ({ block, projectDetails, showBl
className="absolute top-4 -left-0 hidden rounded p-0.5 group-hover:!flex"
{...provided.dragHandleProps}
>
-
-
+
+
= ({ block, projectDetails, showBl
>
{block.issue && block.sync && (
- {isSyncing ?
:
}
+ {isSyncing ?
:
}
{isSyncing ? "Syncing..." : "Synced"}
)}
@@ -339,7 +330,7 @@ export const SinglePageBlock: React.FC
= ({ block, projectDetails, showBl
"Generating response..."
) : (
<>
- I{"'"}m feeling lucky
+ I{"'"}m feeling lucky
>
)}
@@ -348,7 +339,7 @@ export const SinglePageBlock: React.FC = ({ block, projectDetails, showBl
className="-mr-2 flex items-center gap-1 rounded px-1.5 py-1 text-xs hover:bg-custom-background-90"
onClick={() => setGptAssistantModal((prevData) => !prevData)}
>
-
+
AI
= ({ block, projectDetails, showBl
className="-mr-2 flex items-center gap-1 rounded px-1.5 py-1 text-xs hover:bg-custom-background-90"
onClick={() => setCreateBlockForm(true)}
>
-
+
= ({ block, projectDetails, showBl
className="flex w-full cursor-pointer items-center justify-between gap-1 rounded px-2.5 py-1 text-left text-xs duration-300 hover:bg-custom-background-90"
onClick={() => setIsMenuActive(!isMenuActive)}
>
-
+
}
>
@@ -372,7 +363,7 @@ export const SinglePageBlock: React.FC = ({ block, projectDetails, showBl
<>
-
+
Turn sync {block.sync ? "off" : "on"}
@@ -386,14 +377,14 @@ export const SinglePageBlock: React.FC = ({ block, projectDetails, showBl
) : (
-
+
Push into issues
)}
-
+
Delete block
@@ -409,7 +400,7 @@ export const SinglePageBlock: React.FC = ({ block, projectDetails, showBl
-
+
{projectDetails?.identifier}-{block.issue_detail?.sequence_id}
diff --git a/web/components/pages/single-page-detailed-item.tsx b/web/components/pages/single-page-detailed-item.tsx
index cbb094e29..ca70d32e0 100644
--- a/web/components/pages/single-page-detailed-item.tsx
+++ b/web/components/pages/single-page-detailed-item.tsx
@@ -10,8 +10,7 @@ import useToast from "hooks/use-toast";
import { CustomMenu } from "components/ui";
import { Tooltip } from "@plane/ui";
// icons
-import { LinkIcon, LockClosedIcon, LockOpenIcon, PencilIcon, StarIcon, TrashIcon } from "@heroicons/react/24/outline";
-import { ExclamationIcon } from "components/icons";
+import { AlertCircle, LinkIcon, Lock, Pencil, Star, Trash2, Unlock } from "lucide-react";
// helpers
import { copyTextToClipboard, truncateText } from "helpers/string.helper";
import { render24HourFormatTime, renderShortDate, renderLongDateFormat } from "helpers/date-time.helper";
@@ -101,7 +100,7 @@ export const SinglePageDetailedItem: React.FC
= ({
}}
className="z-10 grid place-items-center"
>
-
+
) : (
= ({
}}
className="z-10 grid place-items-center"
>
-
+
)}
{page.created_by === user?.id && (
@@ -133,9 +132,9 @@ export const SinglePageDetailedItem: React.FC = ({
}}
>
{page.access ? (
-
+
) : (
-
+
)}
@@ -147,7 +146,7 @@ export const SinglePageDetailedItem: React.FC = ({
} on ${renderLongDateFormat(`${page.created_at}`)}`}
>
-
+
@@ -159,7 +158,7 @@ export const SinglePageDetailedItem: React.FC = ({
}}
>
-
+
Edit Page
@@ -171,7 +170,7 @@ export const SinglePageDetailedItem: React.FC = ({
}}
>
-
+
Delete Page
diff --git a/web/components/pages/single-page-list-item.tsx b/web/components/pages/single-page-list-item.tsx
index 1dd31c29a..d4f092495 100644
--- a/web/components/pages/single-page-list-item.tsx
+++ b/web/components/pages/single-page-list-item.tsx
@@ -10,16 +10,7 @@ import useToast from "hooks/use-toast";
import { CustomMenu } from "components/ui";
import { Tooltip } from "@plane/ui";
// icons
-import {
- DocumentTextIcon,
- LinkIcon,
- LockClosedIcon,
- LockOpenIcon,
- PencilIcon,
- StarIcon,
- TrashIcon,
-} from "@heroicons/react/24/outline";
-import { ExclamationIcon } from "components/icons";
+import { AlertCircle, FileText, LinkIcon, Lock, Pencil, Star, Trash2, Unlock } from "lucide-react";
// helpers
import { copyTextToClipboard, truncateText } from "helpers/string.helper";
import { renderLongDateFormat, renderShortDate, render24HourFormatTime } from "helpers/date-time.helper";
@@ -70,7 +61,7 @@ export const SinglePageListItem: React.FC = ({
-
+
{truncateText(page.name, 75)}
{page.label_details.length > 0 &&
page.label_details.map((label) => (
@@ -109,7 +100,7 @@ export const SinglePageListItem: React.FC
= ({
handleRemoveFromFavorites();
}}
>
-
+
) : (
= ({
handleAddToFavorites();
}}
>
-
+
)}
{page.created_by === user?.id && (
@@ -140,9 +131,9 @@ export const SinglePageListItem: React.FC = ({
}}
>
{page.access ? (
-
+
) : (
-
+
)}
@@ -154,7 +145,7 @@ export const SinglePageListItem: React.FC = ({
} on ${renderLongDateFormat(`${page.created_at}`)}`}
>
-
+
@@ -167,7 +158,7 @@ export const SinglePageListItem: React.FC = ({
}}
>
-
+
Edit Page
@@ -179,7 +170,7 @@ export const SinglePageListItem: React.FC = ({
}}
>
-
+
Delete Page
diff --git a/web/components/profile/overview/activity.tsx b/web/components/profile/overview/activity.tsx
index 9a4973aaa..e8c8bf984 100644
--- a/web/components/profile/overview/activity.tsx
+++ b/web/components/profile/overview/activity.tsx
@@ -7,8 +7,9 @@ import { UserService } from "services/user.service";
// components
import { ActivityMessage } from "components/core";
// ui
-import { ProfileEmptyState, Icon } from "components/ui";
+import { ProfileEmptyState } from "components/ui";
import { Loader } from "@plane/ui";
+import { Rocket } from "lucide-react";
// image
import recentActivityEmptyState from "public/empty-state/recent_activity.svg";
// helpers
@@ -69,7 +70,7 @@ export const ProfileActivity = () => {
className="font-medium text-custom-text-100 inline-flex items-center gap-1 hover:underline"
>
Issue
-
+
)}
diff --git a/web/components/profile/overview/stats.tsx b/web/components/profile/overview/stats.tsx
index f6ec73778..b109b508d 100644
--- a/web/components/profile/overview/stats.tsx
+++ b/web/components/profile/overview/stats.tsx
@@ -2,8 +2,8 @@ import { useRouter } from "next/router";
import Link from "next/link";
// ui
-import { Icon } from "components/ui";
-import { Loader } from "@plane/ui";
+import { CreateIcon, LayerStackIcon, Loader } from "@plane/ui";
+import { UserCircle2 } from "lucide-react";
// types
import { IUserProfileData } from "types";
@@ -17,19 +17,19 @@ export const ProfileStats: React.FC = ({ userProfile }) => {
const overviewCards = [
{
- icon: "new_window",
+ icon: CreateIcon,
route: "created",
title: "Issues created",
value: userProfile?.created_issues ?? "...",
},
{
- icon: "account_circle",
+ icon: UserCircle2,
route: "assigned",
title: "Issues assigned",
value: userProfile?.assigned_issues ?? "...",
},
{
- icon: "subscriptions",
+ icon: LayerStackIcon,
route: "subscribed",
title: "Issues subscribed",
value: userProfile?.subscribed_issues ?? "...",
@@ -45,7 +45,7 @@ export const ProfileStats: React.FC = ({ userProfile }) => {
-
+
{card.title}
diff --git a/web/components/profile/profile-issues-view-options.tsx b/web/components/profile/profile-issues-view-options.tsx
index cc5a93062..1c68a1a69 100644
--- a/web/components/profile/profile-issues-view-options.tsx
+++ b/web/components/profile/profile-issues-view-options.tsx
@@ -13,8 +13,7 @@ import { MyIssuesSelectFilters } from "components/issues";
import { CustomMenu } from "components/ui";
import { ToggleSwitch, Tooltip } from "@plane/ui";
// icons
-import { ChevronDownIcon } from "@heroicons/react/24/outline";
-import { FormatListBulletedOutlined, GridViewOutlined } from "@mui/icons-material";
+import { ChevronDown, Kanban, List } from "lucide-react";
// helpers
import { replaceUnderscoreIfSnakeCase } from "helpers/string.helper";
import { checkIfArraysHaveSameElements } from "helpers/array.helper";
@@ -26,11 +25,11 @@ import { ISSUE_GROUP_BY_OPTIONS, ISSUE_ORDER_BY_OPTIONS, ISSUE_FILTER_OPTIONS }
const issueViewOptions: { type: TIssueLayouts; Icon: any }[] = [
{
type: "list",
- Icon: FormatListBulletedOutlined,
+ Icon: List,
},
{
type: "kanban",
- Icon: GridViewOutlined,
+ Icon: Kanban,
},
];
@@ -116,7 +115,7 @@ export const ProfileIssuesViewOptions: React.FC = () => {
}`}
>
Display
-
+
{
@@ -162,7 +157,7 @@ export const ProfileSidebar = () => {
)}
-
+
= ({ isOpen, onClose, data, ha
diff --git a/web/components/project/create-project-modal.tsx b/web/components/project/create-project-modal.tsx
index 6c4f0033b..64c455551 100644
--- a/web/components/project/create-project-modal.tsx
+++ b/web/components/project/create-project-modal.tsx
@@ -3,13 +3,13 @@ import { useRouter } from "next/router";
import { useForm, Controller } from "react-hook-form";
import { Dialog, Transition } from "@headlessui/react";
// icons
-import { XMarkIcon } from "@heroicons/react/24/outline";
+import { Users2, X } from "lucide-react";
// hooks
import useToast from "hooks/use-toast";
import { useWorkspaceMyMembership } from "contexts/workspace-member.context";
import useWorkspaceMembers from "hooks/use-workspace-members";
// ui
-import { CustomSelect, Icon, Avatar, CustomSearchSelect } from "components/ui";
+import { CustomSelect, Avatar, CustomSearchSelect } from "components/ui";
import { Button, Input, TextArea } from "@plane/ui";
// components
import { ImagePickerPopover } from "components/core";
@@ -212,7 +212,7 @@ export const CreateProjectModal: React.FC = (props) => {
-
+
@@ -337,7 +337,7 @@ export const CreateProjectModal: React.FC
= (props) => {
{currentNetwork ? (
<>
-
+
{currentNetwork.label}
>
) : (
@@ -353,7 +353,7 @@ export const CreateProjectModal: React.FC
= (props) => {
value={network.key}
className="flex items-center gap-1"
>
-
+
{network.label}
))}
@@ -381,15 +381,12 @@ export const CreateProjectModal: React.FC = (props) => {
{selectedMember?.member.display_name}
onChange(null)}>
-
+
>
) : (
<>
-
+
Lead
>
)}
diff --git a/web/components/project/delete-project-modal.tsx b/web/components/project/delete-project-modal.tsx
index d3185665b..010341688 100644
--- a/web/components/project/delete-project-modal.tsx
+++ b/web/components/project/delete-project-modal.tsx
@@ -5,7 +5,7 @@ import { Dialog, Transition } from "@headlessui/react";
// hooks
import useToast from "hooks/use-toast";
// icons
-import { ExclamationTriangleIcon } from "@heroicons/react/24/outline";
+import { AlertTriangle } from "lucide-react";
// ui
import { Button, Input } from "@plane/ui";
// types
@@ -100,7 +100,7 @@ export const DeleteProjectModal: React.FC = (props) => {