[WEB-4934] dev: propel button implementation (#4322)

This commit is contained in:
Anmol Singh Bhatia
2025-10-07 21:16:56 +05:30
committed by GitHub
parent d0fe1db97c
commit 2babe878ea
311 changed files with 493 additions and 311 deletions
+2 -1
View File
@@ -2,8 +2,9 @@ import { FC, useState } from "react";
import Link from "next/link";
import { useForm } from "react-hook-form";
// plane internal packages
import { Button, getButtonStyling } from "@plane/propel/button";
import { IFormattedInstanceConfiguration, TInstanceOIDCAuthenticationConfigurationKeys } from "@plane/types";
import { Button, TOAST_TYPE, getButtonStyling, setToast } from "@plane/ui";
import { TOAST_TYPE, setToast } from "@plane/ui";
import { cn } from "@plane/utils";
// components
import { CodeBlock } from "@/components/common/code-block";
+2 -1
View File
@@ -2,8 +2,9 @@ import { FC, useState } from "react";
import Link from "next/link";
import { Controller, useForm } from "react-hook-form";
// plane internal packages
import { Button, getButtonStyling } from "@plane/propel/button";
import { IFormattedInstanceConfiguration, TInstanceSAMLAuthenticationConfigurationKeys } from "@plane/types";
import { Button, TOAST_TYPE, TextArea, getButtonStyling, setToast } from "@plane/ui";
import { TOAST_TYPE, TextArea, setToast } from "@plane/ui";
import { cn } from "@plane/utils";
// components
import { CodeBlock } from "@/components/common/code-block";
@@ -6,8 +6,9 @@ import Link from "next/link";
// icons
import { Settings2 } from "lucide-react";
// plane internal packages
import { getButtonStyling } from "@plane/propel/button";
import { TInstanceEnterpriseAuthenticationMethodKeys } from "@plane/types";
import { ToggleSwitch, getButtonStyling } from "@plane/ui";
import { ToggleSwitch } from "@plane/ui";
import { cn } from "@plane/utils";
// hooks
import { useInstance } from "@/hooks/store";
@@ -6,8 +6,9 @@ import Link from "next/link";
// icons
import { Settings2 } from "lucide-react";
// plane internal packages
import { getButtonStyling } from "@plane/propel/button";
import { TInstanceEnterpriseAuthenticationMethodKeys } from "@plane/types";
import { ToggleSwitch, getButtonStyling } from "@plane/ui";
import { ToggleSwitch } from "@plane/ui";
import { cn } from "@plane/utils";
// hooks
import { useInstance } from "@/hooks/store";
@@ -3,7 +3,8 @@
import React from "react";
// plane internal packages
import { WEB_BASE_URL } from "@plane/constants";
import { AlertModalCore, Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
import { AlertModalCore } from "@plane/ui";
export const UpgradeButton: React.FC = () => {
// states
@@ -6,9 +6,10 @@ import { useParams, usePathname, useRouter } from "next/navigation";
import { FileText } from "lucide-react";
// plane imports
import { EPageAccess } from "@plane/constants";
import { Button } from "@plane/propel/button";
import { TPage, TPageNavigationTabs } from "@plane/types";
// ui
import { Breadcrumbs, Button, Header, setToast, TOAST_TYPE } from "@plane/ui";
import { Breadcrumbs, Header, setToast, TOAST_TYPE } from "@plane/ui";
// components
import { BreadcrumbLink } from "@/components/common";
// import { FiltersDropdown } from "@/components/issues";
@@ -6,8 +6,8 @@ import Link from "next/link";
import { useParams } from "next/navigation";
import useSWR from "swr";
// plane imports
import { getButtonStyling } from "@plane/propel/button";
import { EFileAssetType, TSearchEntityRequestPayload, TWebhookConnectionQueryParams } from "@plane/types";
import { getButtonStyling } from "@plane/ui";
import { cn } from "@plane/utils";
// components
import { LogoSpinner } from "@/components/common";
+2 -1
View File
@@ -2,7 +2,8 @@
// ui
import Link from "next/link";
import { Button, TOAST_TYPE, getButtonStyling, setToast } from "@plane/ui";
import { Button, getButtonStyling } from "@plane/propel/button";
import { TOAST_TYPE, setToast } from "@plane/ui";
// helpers
import { cn } from "@plane/utils";
import { API_BASE_URL } from "@/helpers/common.helper";
+1 -1
View File
@@ -5,7 +5,7 @@ import { Metadata } from "next";
import Image from "next/image";
import Link from "next/link";
// ui
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
// images
import Image404 from "@/public/404.svg";
@@ -2,7 +2,7 @@
import Link from "next/link";
// ui
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
// layouts
import DefaultLayout from "@/layouts/default-layout";
@@ -1,6 +1,6 @@
"use client";
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
export const CustomError = () => {
const handleRefresh = () => {
@@ -4,7 +4,7 @@ import React from "react";
import Image from "next/image";
// ui
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
type Props = {
title: string;
@@ -4,7 +4,7 @@ import React, { useState } from "react";
import Image from "next/image";
// ui
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
type Props = {
title: string;
@@ -5,8 +5,8 @@ import { Controller, useForm } from "react-hook-form";
import { X } from "lucide-react";
import { Dialog, Transition } from "@headlessui/react";
import { Button } from "@plane/propel/button";
import { Calendar } from "@plane/propel/calendar";
import { Button } from "@plane/ui";
import { renderFormattedPayloadDate, renderFormattedDate, getDate } from "@/helpers/date-time.helper";
import { DateFilterSelect } from "./date-filter-select";
@@ -11,8 +11,9 @@ import { Tab, Popover } from "@headlessui/react";
// plane imports
import { ACCEPTED_COVER_IMAGE_MIME_TYPES_FOR_REACT_DROPZONE, MAX_FILE_SIZE } from "@plane/constants";
import { useOutsideClickDetector } from "@plane/hooks";
import { Button } from "@plane/propel/button";
import { EFileAssetType } from "@plane/types";
import { Button, Input, Loader, TOAST_TYPE, setToast } from "@plane/ui";
import { Input, Loader, TOAST_TYPE, setToast } from "@plane/ui";
// helpers
import { getFileURL } from "@/helpers/file.helper";
// hooks
@@ -5,9 +5,10 @@ import { observer } from "mobx-react";
import { Controller, useForm } from "react-hook-form";
// types
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { IUserTheme } from "@plane/types";
// ui
import { Button, InputColorPicker, setPromiseToast } from "@plane/ui";
import { InputColorPicker, setPromiseToast } from "@plane/ui";
// hooks
import { useUserProfile } from "@/hooks/store";
@@ -8,7 +8,8 @@ import { EditorRefApi } from "@plane/editor";
// i18n
import { useTranslation } from "@plane/i18n";
// ui
import { Button, Tooltip } from "@plane/ui";
import { Button } from "@plane/propel/button";
import { Tooltip } from "@plane/ui";
// constants
import { cn } from "@plane/utils";
import { TOOLBAR_ITEMS, ToolbarMenuItem } from "@/constants/editor";
@@ -4,7 +4,7 @@ import React from "react";
import { observer } from "mobx-react";
import Image from "next/image";
// ui
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
// utils
import { cn } from "@plane/utils";
@@ -3,7 +3,7 @@
import { FC } from "react";
import Image from "next/image";
// ui
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
// layouts
import DefaultLayout from "@/layouts/default-layout";
// components
@@ -4,7 +4,7 @@ import { FC } from "react";
import Image from "next/image";
import Link from "next/link";
import { useTheme } from "next-themes";
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
// helpers
import { GOD_MODE_URL } from "@/helpers/common.helper";
// images
@@ -1,10 +1,11 @@
"use client";
import { ArrowDownWideNarrow, ArrowUpWideNarrow, Check, ChevronDown } from "lucide-react";
import { getButtonStyling } from "@plane/propel/button";
// types
import { TPageFiltersSortBy, TPageFiltersSortKey } from "@plane/types";
// ui
import { CustomMenu, getButtonStyling } from "@plane/ui";
import { CustomMenu } from "@plane/ui";
// helpers
import { cn } from "@/helpers/common.helper";
@@ -7,9 +7,10 @@ import { FileText, Globe2, Lock, LucideIcon } from "lucide-react";
import { ETabIndices, EPageAccess } from "@plane/constants";
// i18n
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { TPage } from "@plane/types";
// ui
import { Button, EmojiIconPicker, EmojiIconPickerTypes, Input } from "@plane/ui";
import { EmojiIconPicker, EmojiIconPickerTypes, Input } from "@plane/ui";
import { Logo } from "@/components/common";
// constants
import { AccessField } from "@/components/common/access-field";
@@ -2,10 +2,11 @@ import { useState } from "react";
import { observer } from "mobx-react";
import useSWR from "swr";
import { EyeIcon, TriangleAlert } from "lucide-react";
import { Button } from "@plane/propel/button";
// plane types
import { TPageVersion } from "@plane/types";
// plane ui
import { Button, setToast, TOAST_TYPE } from "@plane/ui";
import { setToast, TOAST_TYPE } from "@plane/ui";
import { renderFormattedDate, renderFormattedTime } from "@plane/utils";
// components
import { TVersionEditorProps } from "@/components/pages";
@@ -10,7 +10,8 @@ import useSWR from "swr";
// ui
import { LogOut } from "lucide-react";
import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants";
import { Button, getButtonStyling, setToast, TOAST_TYPE, Tooltip } from "@plane/ui";
import { Button, getButtonStyling } from "@plane/propel/button";
import { setToast, TOAST_TYPE, Tooltip } from "@plane/ui";
// components
import { cn } from "@plane/utils";
import { LogoSpinner } from "@/components/common";
@@ -1,6 +1,6 @@
import { Crown } from "lucide-react";
// ui
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
import { useWorkspaceSubscription } from "@/plane-web/hooks/store/use-workspace-subscription";
export const IssueEmbedUpgradeCard: React.FC<any> = (props) => {
@@ -6,7 +6,7 @@ import { useParams } from "next/navigation";
// constants
import { EPageAccess } from "@plane/constants";
// plane imports
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
// plane web hooks
import { usePageShareForm } from "@/plane-web/hooks/pages/use-page-share-form";
import { EPageStoreType } from "@/plane-web/hooks/store";
@@ -2,7 +2,8 @@ import { useEffect, useState } from "react";
import { observer } from "mobx-react";
import { ExternalLink, Globe2 } from "lucide-react";
// ui
import { Button, EModalWidth, ModalCore, TOAST_TYPE, setToast } from "@plane/ui";
import { Button } from "@plane/propel/button";
import { EModalWidth, ModalCore, TOAST_TYPE, setToast } from "@plane/ui";
// helpers
import { SPACE_BASE_PATH, SPACE_BASE_URL } from "@/helpers/common.helper";
import { copyTextToClipboard } from "@/helpers/string.helper";
@@ -3,8 +3,8 @@ import { observer } from "mobx-react";
import { useParams } from "next/navigation";
// plane imports
import { EUserPermissionsLevel, SPACE_BASE_PATH, SPACE_BASE_URL } from "@plane/constants";
import { Button } from "@plane/propel/button";
import { EUserWorkspaceRoles } from "@plane/types";
import { Button } from "@plane/ui";
// hooks
import { useUserPermissions } from "@/hooks/store/user";
// plane web components
@@ -1,6 +1,6 @@
"use client";
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
type TModalFooterProps = {
hasUnsavedChanges: boolean;
@@ -1,7 +1,7 @@
"use client";
import { Link2 } from "lucide-react";
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
type TModalHeaderProps = {
pageTitle: string;
@@ -5,7 +5,7 @@ import { observer } from "mobx-react";
import Link from "next/link";
// ui
import { useParams } from "next/navigation";
import { Button, getButtonStyling } from "@plane/ui";
import { Button, getButtonStyling } from "@plane/propel/button";
// helpers
import { cn } from "@/helpers/common.helper";
// plane web components
@@ -9,7 +9,8 @@ import { useTheme } from "next-themes";
import { CircleAlert } from "lucide-react";
// hooks
import { EUserPermissionsLevel } from "@plane/constants";
import { AlertModalCore, Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
import { AlertModalCore } from "@plane/ui";
import { useUserPermissions } from "@/hooks/store";
import { useAppRouter } from "@/hooks/use-app-router";
// plane web constants
@@ -3,9 +3,10 @@ import { observer } from "mobx-react";
import { Controller, useFormContext } from "react-hook-form";
import { type EditorRefApi } from "@plane/editor";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { IProject } from "@plane/types";
// plane ui
import { Button, Input } from "@plane/ui";
import { Input } from "@plane/ui";
import { getFileURL } from "@plane/utils";
// components
import { ProjectLogo } from "@/components/common/project-logo";
@@ -2,7 +2,7 @@ import Image from "next/image";
import Link from "next/link";
import { useTheme } from "next-themes";
import { useTranslation } from "@plane/i18n";
import { Button, getButtonStyling } from "@plane/ui";
import { Button, getButtonStyling } from "@plane/propel/button";
import { cn } from "@plane/utils";
import SuccessDark from "@/public/instance/intake-sent-dark.png";
import SuccessLight from "@/public/instance/intake-sent-light.png";
+2 -1
View File
@@ -1,7 +1,8 @@
import { useRef } from "react";
import Link from "next/link";
import { useTranslation } from "@plane/i18n";
import { Button, Popover, Tooltip } from "@plane/ui";
import { Button } from "@plane/propel/button";
import { Popover, Tooltip } from "@plane/ui";
const info = [
"This short form lets you create a new work item in a Plane project.",
@@ -8,7 +8,7 @@ import { ChevronUp } from "lucide-react";
// headless ui
import { Popover, Transition } from "@headlessui/react";
// ui
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
type Props = {
children: React.ReactNode;
@@ -1,7 +1,8 @@
import { observer } from "mobx-react";
import { LayoutGrid } from "lucide-react";
// plane ui
import { Breadcrumbs, Button, Header } from "@plane/ui";
import { Button } from "@plane/propel/button";
import { Breadcrumbs, Header } from "@plane/ui";
// components
import { BreadcrumbLink } from "@/components/common/breadcrumb-link";
// plane web components
@@ -5,10 +5,11 @@ import { useParams } from "next/navigation";
// plane imports
import { EUserPermissionsLevel } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { InitiativeIcon } from "@plane/propel/icons";
import { EUserWorkspaceRoles } from "@plane/types";
// ui
import { Breadcrumbs, Button, Header } from "@plane/ui";
import { Breadcrumbs, Header } from "@plane/ui";
// components
import { BreadcrumbLink } from "@/components/common/breadcrumb-link";
// hooks
@@ -5,8 +5,9 @@ import { observer } from "mobx-react";
import { useParams } from "next/navigation";
// plane imports
import { EProjectFeatureKey, EUserPermissionsLevel } from "@plane/constants";
import { Button } from "@plane/propel/button";
import { EIssuesStoreType, EUserProjectRoles } from "@plane/types";
import { Breadcrumbs, Button, Tooltip, Header } from "@plane/ui";
import { Breadcrumbs, Tooltip, Header } from "@plane/ui";
// components
import { CountChip } from "@/components/common/count-chip";
import { HeaderFilters } from "@/components/issues/filters";
@@ -6,9 +6,9 @@ import Link from "next/link";
import { useParams } from "next/navigation";
import useSWR from "swr";
// plane types
import { getButtonStyling } from "@plane/propel/button";
import { EFileAssetType, TSearchEntityRequestPayload, TWebhookConnectionQueryParams } from "@plane/types";
// plane ui
import { getButtonStyling } from "@plane/ui";
// plane utils
import { cn } from "@plane/utils";
// components
@@ -7,6 +7,7 @@ import { Layers, Lock } from "lucide-react";
// plane imports
import { EIssueFilterType, ISSUE_DISPLAY_FILTERS_BY_PAGE, EUserPermissionsLevel } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { TeamsIcon } from "@plane/propel/icons";
// types
import {
@@ -19,7 +20,7 @@ import {
ICustomSearchSelectOption,
} from "@plane/types";
// ui
import { Breadcrumbs, Button, Tooltip, Header, Loader, BreadcrumbNavigationSearchDropdown } from "@plane/ui";
import { Breadcrumbs, Tooltip, Header, Loader, BreadcrumbNavigationSearchDropdown } from "@plane/ui";
// components
import { getPublishViewLink } from "@plane/utils";
import { BreadcrumbLink } from "@/components/common/breadcrumb-link";
@@ -6,7 +6,7 @@ import Link from "next/link";
import useSWR from "swr";
import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
import { NotAuthorizedView } from "@/components/auth-screens/not-authorized-view";
import { PageHead } from "@/components/core/page-title";
// hooks
@@ -6,8 +6,9 @@ import { useParams, usePathname, useRouter } from "next/navigation";
import { FileText, ListFilter } from "lucide-react";
// plane imports
import { WORKSPACE_PAGE_TRACKER_EVENTS, EPageAccess } from "@plane/constants";
import { Button } from "@plane/propel/button";
import { TPage, TPageNavigationTabs } from "@plane/types";
import { Breadcrumbs, Button, Header, setToast, TOAST_TYPE } from "@plane/ui";
import { Breadcrumbs, Header, setToast, TOAST_TYPE } from "@plane/ui";
import { calculateTotalFilters, capitalizeFirstLetter } from "@plane/utils";
// components
import { BreadcrumbLink } from "@/components/common/breadcrumb-link";
@@ -4,8 +4,8 @@ import { observer } from "mobx-react";
import { Users, Crown } from "lucide-react";
// plane imports
import { EUserPermissionsLevel } from "@plane/constants";
import { Button, getButtonStyling } from "@plane/propel/button";
import { EUserWorkspaceRoles } from "@plane/types";
import { Button, getButtonStyling } from "@plane/ui";
import { cn } from "@plane/utils";
// hooks
import { useUserPermissions } from "@/hooks/store/user";
@@ -6,8 +6,8 @@ import Link from "next/link";
import { useParams } from "next/navigation";
import useSWR from "swr";
// plane imports
import { getButtonStyling } from "@plane/propel/button";
import { EFileAssetType, TSearchEntityRequestPayload, TWebhookConnectionQueryParams } from "@plane/types";
import { getButtonStyling } from "@plane/ui";
import { cn } from "@plane/utils";
// components
import { LogoSpinner } from "@/components/common/logo-spinner";
@@ -3,7 +3,7 @@ import Image from "next/image";
import Link from "next/link";
// plane imports
import { useTranslation } from "@plane/i18n";
import { getButtonStyling } from "@plane/ui";
import { getButtonStyling } from "@plane/propel/button";
import { cn } from "@plane/utils";
// hooks
import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path";
@@ -2,9 +2,10 @@ import { useCallback, useMemo, useState } from "react";
import { observer } from "mobx-react";
// plane imports
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { projectTemplateService } from "@plane/services";
import { EUserPermissions, IWorkspace } from "@plane/types";
import { Button, Loader, setToast, TOAST_TYPE } from "@plane/ui";
import { Loader, setToast, TOAST_TYPE } from "@plane/ui";
import { orderWorkspacesList } from "@plane/utils";
// hooks
import { useWorkspace } from "@/hooks/store/use-workspace";
@@ -1,7 +1,7 @@
"use client";
import { FC } from "react";
import { getButtonStyling } from "@plane/ui";
import { getButtonStyling } from "@plane/propel/button";
type TUpgradeEmptyStateButtonProps = {
workspaceSlug: string;
@@ -1,6 +1,6 @@
"use client";
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
export const CustomError = () => {
const handleRefresh = () => {
@@ -2,7 +2,7 @@ import { FC } from "react";
import { observer } from "mobx-react";
import Image from "next/image";
// plane imports
import { getButtonStyling } from "@plane/ui";
import { getButtonStyling } from "@plane/propel/button";
import { cn } from "@plane/utils";
export type ImportersEmptyStateProps = {
@@ -5,7 +5,6 @@ import Image from "next/image";
import Link from "next/link";
import { useTheme } from "next-themes";
import { GOD_MODE_URL } from "@plane/constants";
import { PlaneLockup } from "@plane/propel/icons";
import { Button } from "@plane/propel/button";
import { PlaneLockup } from "@plane/propel/icons";
// helpers
@@ -5,7 +5,6 @@ import { observer } from "mobx-react";
import { useParams } from "next/navigation";
import { ArrowRight } from "lucide-react";
// plane imports
import { PRODUCT_TOUR_TRACKER_ELEMENTS } from "@plane/constants";
import { Button } from "@plane/propel/button";
import { PlaneLockup } from "@plane/propel/icons";
import { Avatar } from "@plane/ui";
@@ -1,11 +1,12 @@
import { FC } from "react";
import Link from "next/link";
import { getButtonStyling } from "@plane/propel/button";
import { CycleGroupIcon } from "@plane/propel/icons";
import { Tooltip } from "@plane/propel/tooltip";
// types
import { ICycle, TCycleGroups } from "@plane/types";
// ui
import { Avatar, AvatarGroup, getButtonStyling } from "@plane/ui";
import { Avatar, AvatarGroup } from "@plane/ui";
// helpers
import { findHowManyDaysLeft, getFileURL, renderFormattedDate, truncateText } from "@plane/utils";
// hooks
@@ -7,8 +7,9 @@ import { useParams } from "next/navigation";
import useSWR from "swr";
// plane imports
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { ICycle } from "@plane/types";
import { Button, ContentWrapper, Loader } from "@plane/ui";
import { ContentWrapper, Loader } from "@plane/ui";
// components
import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root";
// plane web components
@@ -5,7 +5,8 @@ import { observer } from "mobx-react";
import Image from "next/image";
import { AlertOctagon, BarChart4, CircleDashed, Folder, Microscope, Search, Crown } from "lucide-react";
// ui
import { Button, ContentWrapper } from "@plane/ui";
import { Button } from "@plane/propel/button";
import { ContentWrapper } from "@plane/ui";
// helper
import { cn } from "@plane/utils";
// hooks
@@ -1,7 +1,7 @@
// plane imports
import { AUTOMATION_TRACKER_ELEMENTS } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { Button, TButtonVariant } from "@plane/ui";
import { Button, TButtonVariant } from "@plane/propel/button";
// helpers
import { captureClick } from "@/helpers/event-tracker.helper";
// plane web imports
@@ -1,7 +1,8 @@
import { ChevronLeft, ChevronRight } from "lucide-react";
// plane imports
import { AUTOMATION_TRACKER_ELEMENTS } from "@plane/constants";
import { Button, cn } from "@plane/ui";
import { Button } from "@plane/propel/button";
import { cn } from "@plane/ui";
// helpers
import { captureClick } from "@/helpers/event-tracker.helper";
@@ -4,6 +4,7 @@ import { observer } from "mobx-react";
import { AUTOMATION_TRACKER_ELEMENTS, AUTOMATION_TRACKER_EVENTS } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
// helpers
import { Button } from "@plane/propel/button";
import {
EActionNodeHandlerName,
EAutomationNodeType,
@@ -11,7 +12,7 @@ import {
TChangePropertyActionConfig,
TChangePropertyActionFormConfig,
} from "@plane/types";
import { Button, setToast, TOAST_TYPE } from "@plane/ui";
import { setToast, TOAST_TYPE } from "@plane/ui";
import { captureClick, captureSuccess, captureError } from "@/helpers/event-tracker.helper";
// plane web imports
import { useAutomations } from "@/plane-web/hooks/store/automations/use-automations";
@@ -5,8 +5,9 @@ import { Controller, useForm } from "react-hook-form";
// plane imports
import { AUTOMATION_TRACKER_ELEMENTS, AUTOMATION_TRACKER_EVENTS } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { EAutomationScope, TAutomation } from "@plane/types";
import { Button, EModalPosition, EModalWidth, Input, ModalCore, setToast, TextArea, TOAST_TYPE } from "@plane/ui";
import { EModalPosition, EModalWidth, Input, ModalCore, setToast, TextArea, TOAST_TYPE } from "@plane/ui";
// helpers
import { captureClick, captureSuccess, captureError } from "@/helpers/event-tracker.helper";
// hooks
@@ -6,8 +6,9 @@ import { useDropzone } from "react-dropzone";
import { UserCircle2 } from "lucide-react";
import { Dialog, Transition } from "@headlessui/react";
// plane imports
import { Button } from "@plane/propel/button";
import { EFileAssetType } from "@plane/types";
import { Button, TOAST_TYPE, setToast } from "@plane/ui";
import { TOAST_TYPE, setToast } from "@plane/ui";
import { checkURLValidity, getAssetIdFromUrl, getFileURL } from "@plane/utils";
// hooks
import { useWorkspace } from "@/hooks/store/use-workspace";
@@ -1,7 +1,7 @@
"use client";
import { FC } from "react";
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
// plane web types
import { TDefaultPaginatedInfo } from "@/plane-web/types";
@@ -7,7 +7,8 @@ import { AlertTriangle } from "lucide-react";
// ui
import { CUSTOMER_TRACKER_EVENTS } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { Button, EModalWidth, EModalPosition, ModalCore, TOAST_TYPE, setToast } from "@plane/ui";
import { Button } from "@plane/propel/button";
import { EModalWidth, EModalPosition, ModalCore, TOAST_TYPE, setToast } from "@plane/ui";
// hooks
import { captureError, captureSuccess } from "@/helpers/event-tracker.helper";
import { useAppRouter } from "@/hooks/use-app-router";
@@ -4,8 +4,9 @@ import { FormProvider, useForm } from "react-hook-form";
// plane imports
import { CUSTOMER_TRACKER_EVENTS, ETabIndices } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { TCustomer, TCustomerPayload } from "@plane/types";
import { Button, setToast, TOAST_TYPE } from "@plane/ui";
import { setToast, TOAST_TYPE } from "@plane/ui";
// helpers
import { cn, getTabIndex } from "@plane/utils";
// store
@@ -3,7 +3,7 @@ import { FC } from "react";
import { useTheme } from "next-themes";
// plane imports
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
// components
import { EmptyState } from "@/components/common/empty-state";
// hooks
@@ -4,9 +4,10 @@ import { useParams } from "next/navigation";
// plane imports
import { CUSTOMER_TRACKER_ELEMENTS, EUserPermissionsLevel } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { CustomersIcon } from "@plane/propel/icons";
import { EUserWorkspaceRoles } from "@plane/types";
import { Breadcrumbs, Button } from "@plane/ui";
import { Breadcrumbs } from "@plane/ui";
// components
import { BreadcrumbLink } from "@/components/common/breadcrumb-link";
// hooks
@@ -4,7 +4,8 @@ import { Controller, useForm } from "react-hook-form";
// plane imports
import { CUSTOMER_WEBSITE_AND_SOURCE_URL_REGEX } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { Button, Input, ModalCore } from "@plane/ui";
import { Button } from "@plane/propel/button";
import { Input, ModalCore } from "@plane/ui";
// hooks
import useKeypress from "@/hooks/use-keypress";
import { useCustomers } from "@/plane-web/hooks/store";
@@ -1,8 +1,8 @@
import React, { FC } from "react";
// plane imports
import { useTranslation } from "@plane/i18n";
import { getButtonStyling } from "@plane/propel/button";
import { CustomerRequestIcon } from "@plane/propel/icons";
import { getButtonStyling } from "@plane/ui";
import { cn } from "@plane/utils";
import { SectionEmptyState } from "@/plane-web/components/common/layout/main/common/empty-state";
@@ -5,10 +5,11 @@ import { Database, Paperclip } from "lucide-react";
// plane imports
import { CUSTOMER_TRACKER_EVENTS } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { LayersIcon } from "@plane/propel/icons";
import { CustomerService } from "@plane/services";
import { EFileAssetType, ISearchIssueResponse, TCustomerRequest, TProjectIssuesSearchParams } from "@plane/types";
import { Button, EModalPosition, EModalWidth, Input, setToast, TOAST_TYPE, ModalCore } from "@plane/ui";
import { EModalPosition, EModalWidth, Input, setToast, TOAST_TYPE, ModalCore } from "@plane/ui";
import { getDescriptionPlaceholderI18n } from "@plane/utils";
// components
import { ExistingIssuesListModal } from "@/components/core/modals/existing-issues-list-modal";
@@ -3,9 +3,10 @@ import { observer } from "mobx-react";
import { Database, LayersIcon, PlusIcon } from "lucide-react";
import { CUSTOMER_TRACKER_EVENTS } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { CustomerService } from "@plane/services";
import { ISearchIssueResponse, TProjectIssuesSearchParams } from "@plane/types";
import { Button, setToast, TOAST_TYPE } from "@plane/ui";
import { setToast, TOAST_TYPE } from "@plane/ui";
// components
import { ContentOverflowWrapper } from "@/components/core/content-overflow-HOC";
import { ExistingIssuesListModal } from "@/components/core/modals/existing-issues-list-modal";
@@ -3,8 +3,8 @@ import { observer } from "mobx-react";
// plane web imports
import { EUserPermissionsLevel } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { EUserWorkspaceRoles } from "@plane/types";
import { Button } from "@plane/ui";
import { useUserPermissions } from "@/hooks/store/user";
import {
CustomerRequestEmptyState,
@@ -7,9 +7,10 @@ import { ChevronRight, Plus } from "lucide-react";
import { CUSTOMER_PROPERTY_TRACKER_ELEMENTS, CUSTOMER_PROPERTY_TRACKER_EVENTS } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
// plane types
import { Button } from "@plane/propel/button";
import { EIssuePropertyType, TCreationListModes, TIssueProperty, TIssuePropertyPayload } from "@plane/types";
// plane ui
import { Button, Collapsible } from "@plane/ui";
import { Collapsible } from "@plane/ui";
// helpers
import { cn } from "@plane/utils";
// plane web components
@@ -4,11 +4,11 @@ import { Plus } from "lucide-react";
// plane i18n
import { useTranslation } from "@plane/i18n";
// plane icons
import { Button } from "@plane/propel/button";
import { BuildingsIcon } from "@plane/propel/icons";
// plane types
import { TCreationListModes } from "@plane/types";
// plane ui
import { Button } from "@plane/ui";
// plane web components
import { defaultCustomProperty } from "@/plane-web/components/customers/settings";
import type { TIssuePropertyCreateList } from "@/plane-web/components/issue-types/properties";
@@ -1,7 +1,7 @@
import React, { FC } from "react";
import { useTranslation } from "@plane/i18n";
import { getButtonStyling } from "@plane/propel/button";
import { LayersIcon } from "@plane/propel/icons";
import { getButtonStyling } from "@plane/ui";
import { cn } from "@plane/utils";
import { SectionEmptyState } from "@/plane-web/components/common/layout/main/common/empty-state";
@@ -3,9 +3,10 @@ import { observer } from "mobx-react";
// plane imports
import { CUSTOMER_TRACKER_EVENTS, EUserPermissionsLevel } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { CustomerService } from "@plane/services";
import { EUserWorkspaceRoles, ISearchIssueResponse, TProjectIssuesSearchParams } from "@plane/types";
import { Button, setToast, TOAST_TYPE } from "@plane/ui";
import { setToast, TOAST_TYPE } from "@plane/ui";
import { ExistingIssuesListModal } from "@/components/core/modals/existing-issues-list-modal";
// plane web components
import { captureError, captureSuccess } from "@/helpers/event-tracker.helper";
@@ -3,12 +3,12 @@ import Link from "next/link";
// icons
import { UserCircle2 } from "lucide-react";
// plane imports
import { getButtonStyling } from "@plane/propel/button";
import { CycleGroupIcon } from "@plane/propel/icons";
import { Tooltip } from "@plane/propel/tooltip";
// types
import { ICycle, TCycleGroups } from "@plane/types";
// ui
import { getButtonStyling } from "@plane/ui";
// helpers
import { findHowManyDaysLeft, getFileURL, renderFormattedDate, truncateText } from "@plane/utils";
// hooks
@@ -1,9 +1,10 @@
"use client";
import { FC, useMemo, useState } from "react";
import { Button } from "@plane/propel/button";
import { EIssuesStoreType } from "@plane/types";
// plane imports
import { Button, EModalPosition, EModalWidth, Input, ModalCore, TOAST_TYPE, setToast } from "@plane/ui";
import { EModalPosition, EModalWidth, Input, ModalCore, TOAST_TYPE, setToast } from "@plane/ui";
// components
import { CycleDropdown } from "@/components/dropdowns/cycle";
// hooks
@@ -1,5 +1,6 @@
import React from "react";
import { Button, EModalWidth, ModalCore } from "@plane/ui";
import { Button } from "@plane/propel/button";
import { EModalWidth, ModalCore } from "@plane/ui";
interface Props {
handleStartCycle: () => void;
@@ -3,8 +3,9 @@ import { observer } from "mobx-react";
import { Plus } from "lucide-react";
// plane imports
import { useTranslation } from "@plane/i18n";
import { getButtonStyling } from "@plane/propel/button";
import { EWidgetChartModels, EWidgetChartTypes } from "@plane/types";
import { getButtonStyling, setToast, TOAST_TYPE } from "@plane/ui";
import { setToast, TOAST_TYPE } from "@plane/ui";
// components
import { SimpleEmptyState } from "@/components/empty-state/simple-empty-state-root";
// hooks
@@ -4,8 +4,9 @@ import { useParams } from "next/navigation";
import { Controller, useForm } from "react-hook-form";
// plane imports
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { TDashboard } from "@plane/types";
import { Button, EModalPosition, EModalWidth, Input, ModalCore, setToast, TOAST_TYPE } from "@plane/ui";
import { EModalPosition, EModalWidth, Input, ModalCore, setToast, TOAST_TYPE } from "@plane/ui";
import { cn } from "@plane/utils";
// components
import { Logo } from "@/components/common/logo";
@@ -3,7 +3,7 @@ import { observer } from "mobx-react";
// plane imports
import { EWidgetGridBreakpoints } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
// components
import { SimpleEmptyState } from "@/components/empty-state/simple-empty-state-root";
// hooks
@@ -2,7 +2,7 @@ import { observer } from "mobx-react";
// plane imports
import { EWidgetGridBreakpoints } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
// components
import { SimpleEmptyState } from "@/components/empty-state/simple-empty-state-root";
// hooks
@@ -6,8 +6,9 @@ import { usePopper } from "react-popper";
import { Popover } from "@headlessui/react";
// plane imports
import { useOutsideClickDetector } from "@plane/hooks";
import { Button } from "@plane/propel/button";
import { TDeDupeIssue } from "@plane/types";
import { Button, setToast, TOAST_TYPE } from "@plane/ui";
import { setToast, TOAST_TYPE } from "@plane/ui";
import { cn } from "@plane/utils";
// components
import { MultipleSelectGroup } from "@/components/core/multiple-select";
@@ -3,9 +3,9 @@ import React, { FC, useEffect, useState, useCallback } from "react";
import { observer } from "mobx-react";
import { useParams } from "next/navigation";
// plane imports
import { getButtonStyling } from "@plane/propel/button";
import { LayersIcon } from "@plane/propel/icons";
import { EIssueServiceType, EIssuesStoreType, TIssue, TSubIssueOperations } from "@plane/types";
import { getButtonStyling } from "@plane/ui";
// components
import { cn } from "@plane/utils";
import { DeleteIssueModal } from "@/components/issues/delete-issue-modal";
@@ -3,8 +3,8 @@ import React, { FC } from "react";
import { isEmpty } from "lodash-es";
import { observer } from "mobx-react";
import { LayersIcon } from "lucide-react";
import { getButtonStyling } from "@plane/propel/button";
import { EIssueServiceType } from "@plane/types";
import { getButtonStyling } from "@plane/ui";
import { cn } from "@plane/utils";
// components
import { RelationActionButton, RelationsCollapsibleContent } from "@/components/issues/issue-detail-widgets/relations";
@@ -7,8 +7,9 @@ import { FormProvider, useForm } from "react-hook-form";
// plane imports
import { ETabIndices } from "@plane/constants";
import type { EditorRefApi } from "@plane/editor";
import { Button } from "@plane/propel/button";
import { EIssueServiceType, EWorkItemTypeEntity, type ISearchIssueResponse, type TIssue } from "@plane/types";
import { Button, TOAST_TYPE, setToast } from "@plane/ui";
import { TOAST_TYPE, setToast } from "@plane/ui";
import { cn, getChangedIssuefields, getTabIndex } from "@plane/utils";
// components
import {
@@ -5,8 +5,9 @@ import { observer } from "mobx-react";
import { useTheme } from "next-themes";
// plane imports
import { useTranslation } from "@plane/i18n";
import { Button, getButtonStyling } from "@plane/propel/button";
import { EProductSubscriptionEnum } from "@plane/types";
import { Button, getButtonStyling, TOAST_TYPE, setToast } from "@plane/ui";
import { TOAST_TYPE, setToast } from "@plane/ui";
// helpers
import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root";
// plane web hooks
+1 -1
View File
@@ -7,8 +7,8 @@ import { useTheme } from "next-themes";
// helpers
import { Crown } from "lucide-react";
import { useTranslation } from "@plane/i18n";
import { Button, getButtonStyling } from "@plane/propel/button";
import { EProductSubscriptionEnum } from "@plane/types";
import { Button, getButtonStyling } from "@plane/ui";
import { cn } from "@plane/utils";
import { SettingsHeading } from "@/components/settings/heading";
import { useWorkspaceSubscription } from "@/plane-web/hooks/store";
@@ -2,8 +2,9 @@ import { Dispatch, FC, Fragment, SetStateAction, useState } from "react";
import { observer } from "mobx-react";
import { ChevronLeft, Plus } from "lucide-react";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { TEstimatePointsObject, TEstimateTypeError, TEstimateUpdateStageKeys } from "@plane/types";
import { Button, Sortable, TOAST_TYPE, setToast } from "@plane/ui";
import { Sortable, TOAST_TYPE, setToast } from "@plane/ui";
// components
import { EstimatePointCreate } from "@/components/estimates/points/create";
import { EstimatePointItemPreview } from "@/components/estimates/points/preview";
@@ -3,6 +3,7 @@ import { capitalize } from "lodash-es";
import { observer } from "mobx-react";
import { ChevronLeft, MoveRight } from "lucide-react";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import {
IEstimateFormData,
TEstimatePointsObject,
@@ -10,7 +11,7 @@ import {
TEstimateTypeError,
TEstimateUpdateStageKeys,
} from "@plane/types";
import { Button, TOAST_TYPE, setToast } from "@plane/ui";
import { TOAST_TYPE, setToast } from "@plane/ui";
// hooks
import { useEstimate } from "@/hooks/store/estimates";
// plane web components
@@ -2,8 +2,8 @@
import { FC } from "react";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { TEstimateUpdateStageKeys } from "@plane/types";
import { Button } from "@plane/ui";
// plane web constants
import { ESTIMATE_OPTIONS_STAGE_ONE } from "@/plane-web/constants/estimates";
@@ -1,9 +1,10 @@
import { useState } from "react";
import { observer } from "mobx-react";
import { ExternalLink, RefreshCw } from "lucide-react";
import { Button } from "@plane/propel/button";
import { PlaneLogo } from "@plane/propel/icons";
import { EProductSubscriptionEnum } from "@plane/types";
import { Button, setToast, TOAST_TYPE } from "@plane/ui";
import { setToast, TOAST_TYPE } from "@plane/ui";
// helpers
import { cn } from "@plane/utils";
// hooks
@@ -3,7 +3,8 @@
import { FC, useState } from "react";
import { observer } from "mobx-react";
import { useTranslation } from "@plane/i18n";
import { Button, setToast, TOAST_TYPE } from "@plane/ui";
import { Button } from "@plane/propel/button";
import { setToast, TOAST_TYPE } from "@plane/ui";
// plane web hooks
import { useAsanaImporter } from "@/plane-web/hooks/store";
@@ -3,7 +3,7 @@
import { FC, useState } from "react";
import { observer } from "mobx-react";
import { useTranslation } from "@plane/i18n";
import { Button, setToast, TOAST_TYPE } from "@plane/ui";
import { Button } from "@plane/propel/button";
// plane web hooks
import { useAsanaImporter } from "@/plane-web/hooks/store";
// plane web components
@@ -5,7 +5,7 @@ import { isEqual } from "lodash-es";
import { observer } from "mobx-react";
// ui
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
// plane web components
import { ConfigureAsanaSelectWorkspace, ConfigureAsanaSelectProject } from "@/plane-web/components/importers/asana";
import { StepperNavigation } from "@/plane-web/components/importers/ui";
@@ -8,7 +8,7 @@ import useSWR from "swr";
// ui
import { PriorityConfig, AsanaCustomField, AsanaEnumOption } from "@plane/etl/asana";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
// asana types
// plane web components
import { ConfigureAsanaSelectPriority, MapPrioritiesSelection } from "@/plane-web/components/importers/asana";
@@ -7,9 +7,9 @@ import { observer } from "mobx-react";
import useSWR from "swr";
import { StateConfig, AsanaSection } from "@plane/etl/asana";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { ExState } from "@plane/sdk";
import { IState } from "@plane/types";
import { Button } from "@plane/ui";
// asana types
// plane web components
import { MapStatesSelection } from "@/plane-web/components/importers/asana";
@@ -7,11 +7,12 @@ import useSWR from "swr";
import { Briefcase } from "lucide-react";
// plane imports
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { ExProject } from "@plane/sdk";
// types
import { IProject } from "@plane/types";
// ui
import { Button, Loader } from "@plane/ui";
import { Loader } from "@plane/ui";
// components
import { Logo } from "@/components/common/logo";
// plane web components
@@ -9,8 +9,9 @@ import { IMPORTER_TRACKER_EVENTS } from "@plane/constants";
import { AsanaConfig, AsanaSection } from "@plane/etl/asana";
import { E_IMPORTER_KEYS, E_JOB_STATUS } from "@plane/etl/core";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { TImportJob } from "@plane/types";
import { Button, Loader } from "@plane/ui";
import { Loader } from "@plane/ui";
// plane web components
import { captureError, captureSuccess } from "@/helpers/event-tracker.helper";
import { AddSeatsAlertBanner, SkipUserImport, StepperNavigation } from "@/plane-web/components/importers/ui";
@@ -3,7 +3,7 @@
import { FC, useState } from "react";
import { observer } from "mobx-react";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
// plane web hooks
import { useClickUpImporter } from "@/plane-web/hooks/store";
// plane web components
@@ -4,7 +4,7 @@ import { FC, useEffect, useState } from "react";
import { isEqual } from "lodash-es";
import { observer } from "mobx-react";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/ui";
import { Button } from "@plane/propel/button";
// plane web components
import {
ConfigureClickUpSelectSpace,

Some files were not shown because too many files have changed in this diff Show More