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) => ( - - - - ))} -
)} + /> + + + ))} +
+ )}
{basicMarkItems.map((item, index) => ( -
diff --git a/web/components/analytics/custom-analytics/table.tsx b/web/components/analytics/custom-analytics/table.tsx index c5c36c71a..1d578b0d8 100644 --- a/web/components/analytics/custom-analytics/table.tsx +++ b/web/components/analytics/custom-analytics/table.tsx @@ -1,7 +1,7 @@ import { BarDatum } from "@nivo/bar"; // icons -import { PriorityIcon } from "components/icons"; +import { PriorityIcon } from "@plane/ui"; // helpers import { generateBarColor, generateDisplayName } from "helpers/analytics.helper"; // types diff --git a/web/components/analytics/scope-and-demand/demand.tsx b/web/components/analytics/scope-and-demand/demand.tsx index 23af2b384..0ff82c7af 100644 --- a/web/components/analytics/scope-and-demand/demand.tsx +++ b/web/components/analytics/scope-and-demand/demand.tsx @@ -1,5 +1,5 @@ // icons -import { PlayIcon } from "@heroicons/react/24/outline"; +import { Triangle } from "lucide-react"; // types import { IDefaultAnalyticsResponse, TStateGroups } from "types"; // constants @@ -52,7 +52,7 @@ export const AnalyticsDemand: React.FC = ({ defaultAnalytics }) => (

-

diff --git a/web/components/auth-screens/project/join-project.tsx b/web/components/auth-screens/project/join-project.tsx index f67fca4a8..0f5ccd297 100644 --- a/web/components/auth-screens/project/join-project.tsx +++ b/web/components/auth-screens/project/join-project.tsx @@ -7,7 +7,7 @@ import { ProjectService } from "services/project"; // ui import { Button } from "@plane/ui"; // icons -import { AssignmentClipboardIcon } from "components/icons"; +import { ClipboardList } from "lucide-react"; // images import JoinProjectImg from "public/auth/project-not-authorized.svg"; // fetch-keys @@ -52,7 +52,7 @@ export const JoinProject: React.FC = () => {

{children}
@@ -48,14 +45,8 @@ const BreadcrumbItem: React.FC = ({ <> {link ? ( - -

+ +

{icon ?? null} {title}

diff --git a/web/components/command-palette/change-interface-theme.tsx b/web/components/command-palette/change-interface-theme.tsx index 1285eeb21..ee5d12d29 100644 --- a/web/components/command-palette/change-interface-theme.tsx +++ b/web/components/command-palette/change-interface-theme.tsx @@ -4,8 +4,8 @@ import React, { Dispatch, SetStateAction, useEffect, useState } from "react"; import { Command } from "cmdk"; import { THEMES_OBJ } from "constants/themes"; import { useTheme } from "next-themes"; -import { SettingIcon } from "components/icons"; import useUser from "hooks/use-user"; +import { Settings } from "lucide-react"; // helper import { unsetCustomCssVariables } from "helpers/theme.helper"; // mobx react lite @@ -54,7 +54,7 @@ export const ChangeInterfaceTheme: React.FC = observer(({ setIsPaletteOpe className="focus:outline-none" >
- + {theme.label}
diff --git a/web/components/command-palette/command-k.tsx b/web/components/command-palette/command-k.tsx index 59a455e98..7e89d3844 100644 --- a/web/components/command-palette/command-k.tsx +++ b/web/components/command-palette/command-k.tsx @@ -24,8 +24,29 @@ import { commandGroups, } from "components/command-palette"; // ui -import { Icon } from "components/ui"; -import { Loader, ToggleSwitch, Tooltip } from "@plane/ui"; +import { + FileText, + FolderPlus, + LinkIcon, + MessageSquare, + Rocket, + Settings, + Signal, + Trash2, + UserMinus2, + UserPlus2, +} from "lucide-react"; +import { + ContrastIcon, + DiceIcon, + DoubleCircleIcon, + LayersIcon, + Loader, + PhotoFilterIcon, + ToggleSwitch, + Tooltip, + UserGroupIcon, +} from "@plane/ui"; // icons import { DiscordIcon, GithubIcon, SettingIcon } from "components/icons"; import { MagnifyingGlassIcon } from "@heroicons/react/24/outline"; @@ -351,7 +372,7 @@ export const CommandK: React.FC = ({ deleteIssue, isPaletteOpen, setIsPal className="focus:outline-none" >
- + {currentSection.icon}

{currentSection.itemName(item)}

@@ -375,7 +396,7 @@ export const CommandK: React.FC = ({ deleteIssue, isPaletteOpen, setIsPal className="focus:outline-none" >
- + Change state...
@@ -388,7 +409,7 @@ export const CommandK: React.FC = ({ deleteIssue, isPaletteOpen, setIsPal className="focus:outline-none" >
- + Change priority...
@@ -401,7 +422,7 @@ export const CommandK: React.FC = ({ deleteIssue, isPaletteOpen, setIsPal className="focus:outline-none" >
- + Assign to...
@@ -415,12 +436,12 @@ export const CommandK: React.FC = ({ deleteIssue, isPaletteOpen, setIsPal
{issueDetails?.assignees.includes(user.id) ? ( <> - + Un-assign from me ) : ( <> - + Assign to me )} @@ -428,7 +449,7 @@ export const CommandK: React.FC = ({ deleteIssue, isPaletteOpen, setIsPal
- + Delete issue
@@ -440,7 +461,7 @@ export const CommandK: React.FC = ({ deleteIssue, isPaletteOpen, setIsPal className="focus:outline-none" >
- + Copy issue URL
@@ -458,7 +479,7 @@ export const CommandK: React.FC = ({ deleteIssue, isPaletteOpen, setIsPal className="focus:bg-custom-background-80" >
- + Create new issue
C @@ -478,7 +499,7 @@ export const CommandK: React.FC = ({ deleteIssue, isPaletteOpen, setIsPal className="focus:outline-none" >
- + Create new project
P @@ -500,7 +521,7 @@ export const CommandK: React.FC = ({ deleteIssue, isPaletteOpen, setIsPal className="focus:outline-none" >
- + Create new cycle
Q @@ -518,7 +539,7 @@ export const CommandK: React.FC = ({ deleteIssue, isPaletteOpen, setIsPal className="focus:outline-none" >
- + Create new module
M @@ -536,7 +557,7 @@ export const CommandK: React.FC = ({ deleteIssue, isPaletteOpen, setIsPal className="focus:outline-none" >
- + Create new view
V @@ -554,7 +575,7 @@ export const CommandK: React.FC = ({ deleteIssue, isPaletteOpen, setIsPal className="focus:outline-none" >
- + Create new page
D @@ -573,7 +594,7 @@ export const CommandK: React.FC = ({ deleteIssue, isPaletteOpen, setIsPal className="focus:outline-none" >
- + Search settings...
@@ -581,7 +602,7 @@ export const CommandK: React.FC = ({ deleteIssue, isPaletteOpen, setIsPal
- + Create new workspace
@@ -594,7 +615,7 @@ export const CommandK: React.FC = ({ deleteIssue, isPaletteOpen, setIsPal className="focus:outline-none" >
- + Change interface theme...
@@ -611,7 +632,7 @@ export const CommandK: React.FC = ({ deleteIssue, isPaletteOpen, setIsPal className="focus:outline-none" >
- + Open keyboard shortcuts
@@ -623,7 +644,7 @@ export const CommandK: React.FC = ({ deleteIssue, isPaletteOpen, setIsPal className="focus:outline-none" >
- + Open Plane documentation
@@ -659,7 +680,7 @@ export const CommandK: React.FC = ({ deleteIssue, isPaletteOpen, setIsPal className="focus:outline-none" >
- + Chat with us
diff --git a/web/components/command-palette/helpers.tsx b/web/components/command-palette/helpers.tsx index 0b232b7dc..90511f907 100644 --- a/web/components/command-palette/helpers.tsx +++ b/web/components/command-palette/helpers.tsx @@ -1,4 +1,6 @@ // types +import { ContrastIcon, DiceIcon, LayersIcon, PhotoFilterIcon } from "@plane/ui"; +import { Briefcase, FileText, LayoutGrid } from "lucide-react"; import { IWorkspaceDefaultSearchResult, IWorkspaceIssueSearchResult, @@ -8,14 +10,14 @@ import { export const commandGroups: { [key: string]: { - icon: string; + icon: JSX.Element; itemName: (item: any) => React.ReactNode; path: (item: any) => string; title: string; }; } = { cycle: { - icon: "contrast", + icon: , itemName: (cycle: IWorkspaceDefaultSearchResult) => (
{cycle.project__identifier} @@ -28,7 +30,7 @@ export const commandGroups: { title: "Cycles", }, issue: { - icon: "stack", + icon: , itemName: (issue: IWorkspaceIssueSearchResult) => (
{issue.project__identifier} @@ -41,7 +43,7 @@ export const commandGroups: { title: "Issues", }, issue_view: { - icon: "photo_filter", + icon: , itemName: (view: IWorkspaceDefaultSearchResult) => (
{view.project__identifier} @@ -54,7 +56,7 @@ export const commandGroups: { title: "Views", }, module: { - icon: "dataset", + icon: , itemName: (module: IWorkspaceDefaultSearchResult) => (
{module.project__identifier} @@ -67,7 +69,7 @@ export const commandGroups: { title: "Modules", }, page: { - icon: "article", + icon: , itemName: (page: IWorkspaceDefaultSearchResult) => (
{page.project__identifier} @@ -80,14 +82,13 @@ export const commandGroups: { title: "Pages", }, project: { - icon: "work", + icon: , itemName: (project: IWorkspaceProjectSearchResult) => project?.name, - path: (project: IWorkspaceProjectSearchResult) => - `/${project?.workspace__slug}/projects/${project?.id}/issues/`, + path: (project: IWorkspaceProjectSearchResult) => `/${project?.workspace__slug}/projects/${project?.id}/issues/`, title: "Projects", }, workspace: { - icon: "grid_view", + icon: , itemName: (workspace: IWorkspaceSearchResult) => workspace?.name, path: (workspace: IWorkspaceSearchResult) => `/${workspace?.slug}/`, title: "Workspaces", diff --git a/web/components/command-palette/issue/change-issue-assignee.tsx b/web/components/command-palette/issue/change-issue-assignee.tsx index dbab764d2..d7ed90bd6 100644 --- a/web/components/command-palette/issue/change-issue-assignee.tsx +++ b/web/components/command-palette/issue/change-issue-assignee.tsx @@ -11,7 +11,7 @@ import { ISSUE_DETAILS, PROJECT_ISSUES_ACTIVITY } from "constants/fetch-keys"; // ui import { Avatar } from "components/ui"; // icons -import { CheckIcon } from "components/icons"; +import { Check } from "lucide-react"; // types import { IUser, IIssue } from "types"; @@ -42,7 +42,7 @@ export const ChangeIssueAssignee: FC = ({ setIsPaletteOpen, issue, user }
{issue.assignees.includes(member.id) && (
- +
)} diff --git a/web/components/command-palette/issue/change-issue-priority.tsx b/web/components/command-palette/issue/change-issue-priority.tsx index e38fb1b83..5551a8a3a 100644 --- a/web/components/command-palette/issue/change-issue-priority.tsx +++ b/web/components/command-palette/issue/change-issue-priority.tsx @@ -14,7 +14,8 @@ import { IIssue, IUser, TIssuePriorities } from "types"; import { ISSUE_DETAILS, PROJECT_ISSUES_ACTIVITY } from "constants/fetch-keys"; import { PRIORITIES } from "constants/project"; // icons -import { CheckIcon, PriorityIcon } from "components/icons"; +import { PriorityIcon } from "@plane/ui"; +import { Check } from "lucide-react"; type Props = { setIsPaletteOpen: Dispatch>; @@ -72,7 +73,7 @@ export const ChangeIssuePriority: React.FC = ({ setIsPaletteOpen, issue, {priority ?? "None"}
-
{priority === issue.priority && }
+
{priority === issue.priority && }
))} diff --git a/web/components/command-palette/issue/change-issue-state.tsx b/web/components/command-palette/issue/change-issue-state.tsx index 0dfa23e6a..03f495603 100644 --- a/web/components/command-palette/issue/change-issue-state.tsx +++ b/web/components/command-palette/issue/change-issue-state.tsx @@ -10,9 +10,9 @@ import { Command } from "cmdk"; import { IssueService } from "services/issue"; import { ProjectStateService } from "services/project"; // ui -import { Spinner } from "@plane/ui"; +import { Spinner, StateGroupIcon } from "@plane/ui"; // icons -import { CheckIcon, StateGroupIcon } from "components/icons"; +import { Check } from "lucide-react"; // helpers import { getStatesList } from "helpers/state.helper"; // types @@ -85,7 +85,7 @@ export const ChangeIssueState: React.FC = ({ setIsPaletteOpen, issue, use

{state.name}

-
{state.id === issue.state && }
+
{state.id === issue.state && }
)) ) : ( diff --git a/web/components/command-palette/shortcuts-modal.tsx b/web/components/command-palette/shortcuts-modal.tsx index 44f3d5442..56f70ddea 100644 --- a/web/components/command-palette/shortcuts-modal.tsx +++ b/web/components/command-palette/shortcuts-modal.tsx @@ -2,9 +2,7 @@ import React, { useEffect, useState } from "react"; // headless ui import { Dialog, Transition } from "@headlessui/react"; // icons -import { XMarkIcon } from "@heroicons/react/20/solid"; -import { MagnifyingGlassIcon } from "@heroicons/react/24/outline"; -import { CommandIcon } from "components/icons"; +import { Command, Search, X } from "lucide-react"; // ui import { Input } from "@plane/ui"; @@ -92,16 +90,13 @@ export const ShortcutsModal: React.FC = ({ isOpen, setIsOpen }) => { Keyboard Shortcuts
- + = ({ isOpen, setIsOpen }) => { {key === "Ctrl" ? ( - + ) : key === "Ctrl" ? ( - + ) : ( @@ -169,11 +164,11 @@ export const ShortcutsModal: React.FC = ({ isOpen, setIsOpen }) => { {key === "Ctrl" ? ( - + ) : key === "Ctrl" ? ( - + ) : ( diff --git a/web/components/common/product-updates-modal.tsx b/web/components/common/product-updates-modal.tsx index f309b8303..aa4618d3a 100644 --- a/web/components/common/product-updates-modal.tsx +++ b/web/components/common/product-updates-modal.tsx @@ -10,7 +10,7 @@ import { WorkspaceService } from "services/workspace.service"; import { MarkdownRenderer } from "components/ui"; import { Loader } from "@plane/ui"; // icons -import { XMarkIcon } from "@heroicons/react/20/solid"; +import { X } from "lucide-react"; // helpers import { renderLongDateFormat } from "helpers/date-time.helper"; @@ -57,10 +57,7 @@ export const ProductUpdatesModal: React.FC = ({ isOpen, setIsOpen }) => { Product Updates diff --git a/web/components/core/activity.tsx b/web/components/core/activity.tsx index affb2aa46..b44447fb9 100644 --- a/web/components/core/activity.tsx +++ b/web/components/core/activity.tsx @@ -7,8 +7,7 @@ import useEstimateOption from "hooks/use-estimate-option"; // services import { IssueLabelService } from "services/issue"; // icons -import { Tooltip } from "@plane/ui"; -import { Icon } from "components/ui"; +import { Tooltip, BlockedIcon, BlockerIcon, RelatedIcon, LayersIcon, DiceIcon } from "@plane/ui"; import { TagIcon, CopyPlus, @@ -23,8 +22,8 @@ import { LayoutGridIcon, SignalMediumIcon, MessageSquareIcon, + UsersIcon, } from "lucide-react"; -import { BlockedIcon, BlockerIcon, RelatedIcon, StackedLayersHorizontalIcon } from "components/icons"; // helpers import { renderShortDateWithYearFormat } from "helpers/date-time.helper"; import { capitalizeFirstLetter } from "helpers/string.helper"; @@ -359,7 +358,7 @@ const activityDetails: { if (activity.verb === "created") return "created the issue."; else return "deleted an issue."; }, - icon:
, + icon: , }, ]; diff --git a/web/components/core/filters/filters-list.tsx b/web/components/core/filters/filters-list.tsx index 697844a15..f92958504 100644 --- a/web/components/core/filters/filters-list.tsx +++ b/web/components/core/filters/filters-list.tsx @@ -1,8 +1,7 @@ import React from "react"; // icons -import { XMarkIcon } from "@heroicons/react/24/outline"; -import { PriorityIcon, StateGroupIcon } from "components/icons"; +import { PriorityIcon, StateGroupIcon } from "@plane/ui"; // ui import { Avatar } from "components/ui"; // helpers @@ -13,6 +12,7 @@ import { renderShortDateWithYearFormat } from "helpers/date-time.helper"; import { IIssueFilterOptions, IIssueLabels, IState, IUserLite, TStateGroups } from "types"; // constants import { STATE_GROUP_COLORS } from "constants/state"; +import { X } from "lucide-react"; type Props = { filters: Partial; @@ -23,19 +23,10 @@ type Props = { states: IState[] | undefined; }; -export const FiltersList: React.FC = ({ - filters, - setFilters, - clearAllFilters, - labels, - members, - states, -}) => { +export const FiltersList: React.FC = ({ filters, setFilters, clearAllFilters, labels, members, states }) => { if (!filters) return <>; - const nullFilters = Object.keys(filters).filter( - (key) => filters[key as keyof IIssueFilterOptions] === null - ); + const nullFilters = Object.keys(filters).filter((key) => filters[key as keyof IIssueFilterOptions] === null); return (
@@ -71,10 +62,7 @@ export const FiltersList: React.FC = ({ }} > - + {state?.name ?? ""} = ({ }) } > - +

); @@ -115,7 +103,7 @@ export const FiltersList: React.FC = ({ }) } > - +

); @@ -137,7 +125,7 @@ export const FiltersList: React.FC = ({ }`} > - + {priority === "null" ? "None" : priority} = ({ }) } > - +

)) @@ -167,13 +155,11 @@ export const FiltersList: React.FC = ({ className="cursor-pointer" onClick={() => setFilters({ - subscriber: filters.subscriber?.filter( - (p: any) => p !== memberId - ), + subscriber: filters.subscriber?.filter((p: any) => p !== memberId), }) } > - +
); @@ -193,13 +179,11 @@ export const FiltersList: React.FC = ({ className="cursor-pointer" onClick={() => setFilters({ - created_by: filters.created_by?.filter( - (p: any) => p !== memberId - ), + created_by: filters.created_by?.filter((p: any) => p !== memberId), }) } > - +
); @@ -234,7 +218,7 @@ export const FiltersList: React.FC = ({ }) } > - = ({ }) } > - +
); @@ -295,7 +279,7 @@ export const FiltersList: React.FC = ({ }) } > - + ); @@ -309,7 +293,7 @@ export const FiltersList: React.FC = ({ }) } > - + @@ -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 -
-
- +

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 = ({ }} >
-
))} @@ -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" > - +
)} 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 = ({ }} >
- + Edit issue
@@ -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) => { }} >
- + Edit issue
@@ -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); }} > - + ) : ( )} @@ -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} > -
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
- + Progress
@@ -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(); }} > - + ) : ( )} @@ -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(); }} > - + ) : ( )}
@@ -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 }) =>
- +

Transfer Issues

- + = ({ 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, }} >
- + Edit estimate
@@ -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
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) => { }} >
-
))} 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" > - +
{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 = ({ }} >
-