From 93282ad8f6c16739ad8eb53495ef25ab503c6ffc Mon Sep 17 00:00:00 2001 From: anmolsinghbhatia Date: Fri, 28 Aug 2026 19:03:30 +0530 Subject: [PATCH 1/3] refactor: migrate web @plane/propel Button to @makeplane/propel Replace in-repo Button and getButtonStyling in apps/web with @makeplane/propel Button. Map sizes sm/base/lg/xl to xs/sm/md/lg, error variants to danger, and link to ghost. Stretch is required. Links use render; CustomMenu and dropdown chrome use the styled element so we do not nest buttons. --- .../(projects)/drafts/header.tsx | 21 ++--- .../[workspaceSlug]/(projects)/header.tsx | 21 ++--- .../profile/[userId]/activity/page.tsx | 12 ++- .../(projects)/profile/[userId]/header.tsx | 15 +--- .../(detail)/[archivedIssueId]/page.tsx | 9 ++- .../[projectId]/cycles/(detail)/header.tsx | 25 +++--- .../[projectId]/cycles/(list)/header.tsx | 11 ++- .../[projectId]/modules/(detail)/header.tsx | 40 +++++----- .../[projectId]/modules/(list)/header.tsx | 11 ++- .../pages/(detail)/[pageId]/page.tsx | 21 ++--- .../[projectId]/pages/(list)/header.tsx | 13 ++- .../views/(detail)/[viewId]/header.tsx | 10 +-- .../[projectId]/views/(list)/header.tsx | 12 ++- .../(projects)/stickies/header.tsx | 10 +-- .../(projects)/workspace-views/header.tsx | 12 ++- .../settings/(workspace)/members/page.tsx | 12 ++- .../settings/(workspace)/webhooks/page.tsx | 12 ++- .../(settings)/settings/projects/page.tsx | 22 ++++-- apps/web/app/(all)/create-workspace/page.tsx | 23 ++++-- apps/web/app/(all)/invitations/page.tsx | 25 +++--- apps/web/app/error/dev.tsx | 12 +-- apps/web/app/error/prod.tsx | 6 +- apps/web/app/not-found.tsx | 19 +++-- .../components/account/auth-forms/email.tsx | 14 +++- .../account/auth-forms/forgot-password.tsx | 33 ++++---- .../account/auth-forms/password.tsx | 43 +++++----- .../account/auth-forms/reset-password.tsx | 13 ++- .../account/auth-forms/set-password.tsx | 13 ++- .../account/auth-forms/unique-code.tsx | 21 +++-- .../account/deactivate-account-modal.tsx | 16 ++-- .../workspace-active-cycles-upgrade.tsx | 20 ++--- .../analytics/insight-table/root.tsx | 11 +-- .../components/analytics/select/project.tsx | 7 +- .../analytics/work-items/priority-chart.tsx | 11 +-- .../core/components/api-token/empty-state.tsx | 8 +- .../core/components/api-token/modal/form.tsx | 23 +++--- .../modal/generated-token-details.tsx | 6 +- .../auth-screens/workspace/not-a-member.tsx | 28 ++++--- .../automation/select-month-modal.tsx | 17 ++-- .../core/components/common/empty-state.tsx | 11 +-- .../common/layout-error-boundary.tsx | 6 +- .../components/common/new-empty-state.tsx | 21 ++--- .../core/description-versions/modal.tsx | 21 +++-- .../core/filters/date-filter-modal.tsx | 14 ++-- .../components/core/image-picker-popover.tsx | 38 ++++++--- .../core/modals/bulk-delete-issues-modal.tsx | 17 ++-- .../core/modals/change-email-modal.tsx | 34 +++++--- .../modals/existing-issues-list-modal.tsx | 34 ++++---- .../core/modals/gpt-assistant-popover.tsx | 24 +++--- .../core/modals/user-image-upload-modal.tsx | 29 ++++--- .../modals/workspace-image-upload-modal.tsx | 30 ++++--- .../core/theme/custom-theme-selector.tsx | 13 ++- .../core/theme/download-config-button.tsx | 13 ++- .../core/theme/import-config-button.tsx | 13 ++- .../cycles/archived-cycles/modal.tsx | 18 +++-- apps/web/core/components/cycles/form.tsx | 39 ++++++--- .../components/cycles/transfer-issues.tsx | 14 +++- .../web/core/components/dropdowns/buttons.tsx | 28 +++---- apps/web/core/components/dropdowns/layout.tsx | 79 +++++++------------ .../components/editor/lite-text/toolbar.tsx | 24 +++--- .../empty-state/comic-box-button.tsx | 23 ++++-- .../empty-state/detailed-empty-state-root.tsx | 16 ++-- .../components/estimates/create/modal.tsx | 24 ++++-- .../components/estimates/delete/modal.tsx | 24 ++++-- .../estimates/points/create-root.tsx | 13 ++- .../core/components/exporter/export-form.tsx | 13 ++- .../core/components/exporter/export-modal.tsx | 24 +++--- .../core/components/exporter/prev-exports.tsx | 37 +++++---- .../components/exporter/single-export.tsx | 6 +- .../global/product-updates/footer.tsx | 25 +++--- .../links/create-update-link-modal.tsx | 18 +++-- .../inbox/content/inbox-issue-header.tsx | 42 +++++----- .../components/inbox/inbox-filter/root.tsx | 7 +- .../inbox/inbox-filter/sorting/order-by.tsx | 9 +-- .../inbox/modals/create-modal/create-root.tsx | 18 ++--- .../inbox/modals/snooze-issue-modal.tsx | 9 ++- .../components/instance/not-ready-view.tsx | 6 +- .../integration/single-integration-card.tsx | 52 ++++++------ .../components/issues/archive-issue-modal.tsx | 18 +++-- .../issues/bulk-operations/upgrade-banner.tsx | 20 ++--- .../issues/confirm-issue-discard.tsx | 21 ++--- apps/web/core/components/issues/filters.tsx | 18 +++-- apps/web/core/components/issues/header.tsx | 11 ++- .../sub-issues/issues-list/root.tsx | 12 ++- .../issue-detail-widgets/widget-button.tsx | 9 +-- .../issue-detail/label/label-list-item.tsx | 17 ++-- .../label/select/label-select.tsx | 16 ++-- .../links/create-update-link-modal.tsx | 17 ++-- .../issues/issue-detail/subscription.tsx | 22 ++---- .../filters/header/helpers/dropdown.tsx | 36 ++++----- .../header/mobile-layout-selection.tsx | 21 +++-- .../components/issues/issue-modal/form.tsx | 28 +++---- .../labels/create-update-label-inline.tsx | 13 ++- .../labels/project-setting-label-list.tsx | 6 +- .../license/modal/card/checkout-button.tsx | 37 +++++---- .../license/modal/card/talk-to-sales.tsx | 16 ++-- .../modules/archived-modules/modal.tsx | 18 +++-- .../components/modules/dropdowns/order-by.tsx | 10 +-- apps/web/core/components/modules/form.tsx | 39 ++++++--- .../modules/links/create-update-modal.tsx | 17 ++-- .../onboarding/create-workspace.tsx | 34 ++++---- .../components/onboarding/invitations.tsx | 31 ++++---- .../components/onboarding/invite-members.tsx | 16 ++-- .../components/onboarding/profile-setup.tsx | 14 +++- .../onboarding/steps/profile/root.tsx | 6 +- .../components/onboarding/steps/role/root.tsx | 12 ++- .../components/onboarding/steps/team/root.tsx | 16 ++-- .../onboarding/steps/usecase/root.tsx | 10 +-- .../onboarding/steps/workspace/create.tsx | 24 ++++-- .../steps/workspace/join-invites.tsx | 21 +++-- .../onboarding/switch-account-modal.tsx | 13 ++- .../core/components/onboarding/tour/root.tsx | 36 ++++++--- .../core/components/pages/list/order-by.tsx | 6 +- .../pages/modals/export-page-modal.tsx | 17 ++-- .../components/pages/modals/page-form.tsx | 21 +++-- .../components/pages/version/main-content.tsx | 26 ++++-- .../profile/activity/download-button.tsx | 15 +++- .../project-states/create-update/form.tsx | 25 ++++-- .../project/archive-restore-modal.tsx | 14 ++-- apps/web/core/components/project/card.tsx | 26 +++--- .../project/confirm-project-member-remove.tsx | 20 +++-- .../project/create/project-create-buttons.tsx | 25 ++++-- .../project/delete-project-modal.tsx | 18 +++-- .../project/dropdowns/filters/member-list.tsx | 14 ++-- .../components/project/dropdowns/order-by.tsx | 19 ++--- .../core/components/project/empty-state.tsx | 12 +-- apps/web/core/components/project/form.tsx | 14 +++- apps/web/core/components/project/header.tsx | 12 ++- .../components/project/join-project-modal.tsx | 19 +++-- .../project/leave-project-modal.tsx | 17 ++-- .../core/components/project/member-list.tsx | 9 ++- .../components/project/multi-select-modal.tsx | 16 ++-- .../project/project-feature-update.tsx | 21 +++-- .../project/publish-project/modal.tsx | 38 +++++---- .../project/send-project-invitation-modal.tsx | 23 +++--- .../project/settings/control-section.tsx | 22 ++++-- .../projects/settings/intake/header.tsx | 12 ++- .../rich-filters/add-filters/button.tsx | 42 +++++++--- .../components/rich-filters/filters-row.tsx | 46 +++++++---- .../profile/content/pages/api-tokens.tsx | 12 ++- .../profile/content/pages/general/form.tsx | 23 ++++-- .../profile/content/pages/security.tsx | 20 +++-- .../core/components/sidebar/add-button.tsx | 34 ++++---- .../components/views/filters/order-by.tsx | 24 +++--- apps/web/core/components/views/form.tsx | 39 ++++++--- .../core/components/web-hooks/empty-state.tsx | 8 +- .../web-hooks/form/delete-section.tsx | 6 +- .../core/components/web-hooks/form/form.tsx | 28 ++++--- .../components/web-hooks/form/secret-key.tsx | 14 ++-- .../web-hooks/generated-hook-details.tsx | 6 +- .../options/snooze/modal.tsx | 17 ++-- .../ConfirmWorkspaceMemberRemove.tsx | 32 +++++--- .../workspace/billing/comparison/base.tsx | 12 +-- .../billing/comparison/plan-detail.tsx | 12 ++- .../confirm-workspace-member-remove.tsx | 32 +++++--- .../workspace/create-workspace-form.tsx | 25 ++++-- .../workspace/delete-workspace-form.tsx | 18 +++-- .../workspace/delete-workspace-section.tsx | 12 ++- .../components/workspace/edition-badge.tsx | 10 +-- .../workspace/invite-modal/actions.tsx | 30 ++++--- .../workspace/settings/workspace-details.tsx | 10 +-- .../workspace/sidebar/quick-actions.tsx | 8 +- .../core/components/workspace/views/form.tsx | 31 +++++--- .../layouts/auth-layout/workspace-wrapper.tsx | 62 ++++++++++----- 164 files changed, 1884 insertions(+), 1389 deletions(-) diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/drafts/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/drafts/header.tsx index a063df5256f..880f6f21855 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/drafts/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/drafts/header.tsx @@ -9,7 +9,7 @@ import { observer } from "mobx-react"; import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; // ui -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { DraftIcon } from "@plane/propel/icons"; import { EIssuesStoreType } from "@plane/types"; import { Breadcrumbs, Header } from "@plane/ui"; @@ -66,15 +66,16 @@ export const WorkspaceDraftHeader = observer(function WorkspaceDraftHeader() { {joinedProjectIds && joinedProjectIds.length > 0 && ( - + + + + + + diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/[archivedIssueId]/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/[archivedIssueId]/page.tsx index 592bf09a50f..e918a60d40d 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/[archivedIssueId]/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/[archivedIssueId]/page.tsx @@ -9,7 +9,7 @@ import { useRouter } from "next/navigation"; import useSWR from "swr"; // ui import { Banner } from "@plane/propel/banner"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { ArchiveIcon } from "@plane/propel/icons"; import { Loader } from "@plane/ui"; // components @@ -74,10 +74,11 @@ function ArchivedIssueDetailsPage({ params }: Route.ComponentProps) { action={ + /> } className="border-b border-subtle" /> diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/header.tsx index 8f4165010f4..fc50b7fda78 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/header.tsx @@ -8,7 +8,7 @@ import { useCallback, useRef, useState } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // icons -import { ChartNoAxesColumn, PanelRight, SlidersHorizontal } from "lucide-react"; +import { PanelRight, SlidersHorizontal } from "lucide-react"; // plane imports import { EIssueFilterType, @@ -18,7 +18,7 @@ import { } from "@plane/constants"; import { usePlatformOS } from "@plane/hooks"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { IconButton } from "@plane/propel/icon-button"; import { CycleIcon } from "@plane/propel/icons"; import { Tooltip } from "@plane/propel/tooltip"; @@ -232,22 +232,23 @@ export const CycleIssuesHeader = observer(function CycleIssuesHeader() { {canUserCreateIssue && ( <> - + + /> )} )} diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/header.tsx index 5e757289535..83c4e057876 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/header.tsx @@ -9,7 +9,7 @@ import { useParams } from "next/navigation"; // ui import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { CycleIcon } from "@plane/propel/icons"; import { Breadcrumbs, Header } from "@plane/ui"; // components @@ -62,14 +62,13 @@ export const CyclesListHeader = observer(function CyclesListHeader() { + /> ) : ( <> diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/header.tsx index 13613d413bb..5193cd7f52f 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/header.tsx @@ -8,7 +8,7 @@ import { useCallback, useRef, useState } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // icons -import { ChartNoAxesColumn, PanelRight, SlidersHorizontal } from "lucide-react"; +import { PanelRight, SlidersHorizontal } from "lucide-react"; // plane imports import { EIssueFilterType, @@ -16,7 +16,7 @@ import { EUserPermissions, EUserPermissionsLevel, } from "@plane/constants"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { ModuleIcon } from "@plane/propel/icons"; import { Tooltip } from "@plane/propel/tooltip"; import type { ICustomSearchSelectOption, IIssueDisplayFilterOptions, IIssueDisplayProperties } from "@plane/types"; @@ -227,22 +227,26 @@ export const ModuleIssuesHeader = observer(function ModuleIssuesHeader() { {canUserCreateIssue ? ( <> - - + + + /> ) : ( <> )} diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/[pageId]/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/[pageId]/page.tsx index fc1f76aa5d4..6ce20ef8688 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/[pageId]/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/[pageId]/page.tsx @@ -9,12 +9,9 @@ import { observer } from "mobx-react"; import Link from "next/link"; import useSWR from "swr"; // plane types -import { getButtonStyling } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import type { TSearchEntityRequestPayload, TWebhookConnectionQueryParams } from "@plane/types"; import { EFileAssetType } from "@plane/types"; -// plane ui -// plane utils -import { cn } from "@plane/utils"; // components import { LogoSpinner } from "@/components/common/logo-spinner"; import { PageHead } from "@/components/core/page-title"; @@ -165,12 +162,16 @@ function PageDetailsPage({ params }: Route.ComponentProps) {

The page you are trying to access doesn{"'"}t exist or you don{"'"}t have permission to view it.

- - View other Pages - + + + + /> )}
- +
diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/stickies/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/stickies/header.tsx index 7eab6a4a7fc..33ff36ea64b 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/stickies/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/stickies/header.tsx @@ -7,7 +7,7 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // plane imports -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { RecentStickyIcon } from "@plane/propel/icons"; import { Breadcrumbs, Header } from "@plane/ui"; // components @@ -45,15 +45,15 @@ export const WorkspaceStickyHeader = observer(function WorkspaceStickyHeader() { + /> diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/header.tsx index f4fdddc4ed8..fe75d323985 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/header.tsx @@ -10,7 +10,7 @@ import { useParams } from "next/navigation"; // plane imports import { EIssueFilterType, ISSUE_DISPLAY_FILTERS_BY_PAGE, DEFAULT_GLOBAL_VIEWS_LIST } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { ViewsIcon } from "@plane/propel/icons"; import type { IIssueDisplayFilterOptions, IIssueDisplayProperties, ICustomSearchSelectOption } from "@plane/types"; import { EIssuesStoreType, EIssueLayoutTypes } from "@plane/types"; @@ -143,9 +143,13 @@ export const GlobalIssuesHeader = observer(function GlobalIssuesHeader() { /> )} - + +
diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/webhooks/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/webhooks/page.tsx index 099a0ee40aa..5a279c7411a 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/webhooks/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/webhooks/page.tsx @@ -10,7 +10,7 @@ import useSWR from "swr"; // plane imports import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; // components import { EmptyStateCompact } from "@plane/propel/empty-state"; import { NotAuthorizedView } from "@/components/auth-screens/not-authorized-view"; @@ -78,9 +78,13 @@ function WebhooksListPage({ params }: Route.ComponentProps) { title={t("workspace_settings.settings.webhooks.title")} description={t("workspace_settings.settings.webhooks.description")} control={ - + + - - {t("workspace_creation.errors.creation_disabled.request_button")} - + - - - - - + /> + - {onReload && ( - - )} + + -
- + + + - - {t("auth.common.back_to_sign_in")} - + /> + + + /> )} ) : ( - + + + + - + + label={t("exporter.csv.short_description")} + /> )} /> diff --git a/apps/web/core/components/analytics/select/project.tsx b/apps/web/core/components/analytics/select/project.tsx index 7bdbbddb366..864637b034d 100644 --- a/apps/web/core/components/analytics/select/project.tsx +++ b/apps/web/core/components/analytics/select/project.tsx @@ -6,11 +6,10 @@ import { observer } from "mobx-react"; // plane package imports -import { getButtonStyling } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/elements/button"; import { Logo } from "@plane/propel/emoji-icon-picker"; import { ChevronDownIcon, ProjectIcon } from "@plane/propel/icons"; import { CustomSearchSelect } from "@plane/ui"; -import { cn } from "@plane/utils"; // hooks import { useProject } from "@/hooks/store/use-project"; @@ -50,7 +49,7 @@ export const ProjectSelect = observer(function ProjectSelect(props: Props) { options={options} className="border-none p-0" customButton={ -
+
+ } customButtonClassName="border-none p-0 bg-transparent hover:bg-transparent w-auto h-auto" multiple diff --git a/apps/web/core/components/analytics/work-items/priority-chart.tsx b/apps/web/core/components/analytics/work-items/priority-chart.tsx index 942285cab20..dbebdf158db 100644 --- a/apps/web/core/components/analytics/work-items/priority-chart.tsx +++ b/apps/web/core/components/analytics/work-items/priority-chart.tsx @@ -15,7 +15,7 @@ import { Download } from "lucide-react"; import type { ChartXAxisDateGrouping } from "@plane/constants"; import { ANALYTICS_X_AXIS_VALUES, ANALYTICS_Y_AXIS_VALUES, CHART_COLOR_PALETTES, EChartModels } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { BarChart } from "@plane/propel/charts/bar-chart"; import { EmptyStateCompact } from "@plane/propel/empty-state"; import type { TBarItem, TChart, TChartDatum, ChartXAxisProperty, ChartYAxisMetric } from "@plane/types"; @@ -228,11 +228,12 @@ const PriorityChart = observer(function PriorityChart(props: Props) { actions={(table: Table) => ( + label={t("exporter.csv.short_description")} + /> )} /> diff --git a/apps/web/core/components/api-token/empty-state.tsx b/apps/web/core/components/api-token/empty-state.tsx index 944d19e34be..c0f0f4c257b 100644 --- a/apps/web/core/components/api-token/empty-state.tsx +++ b/apps/web/core/components/api-token/empty-state.tsx @@ -6,7 +6,7 @@ import React from "react"; // ui -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; // assets import emptyApiTokens from "@/app/assets/empty-state/api-token.svg?url"; @@ -27,9 +27,9 @@ export function ApiTokenEmptyState(props: Props) {

Create API tokens for safe and easy data sharing with external apps, maintaining control and security.

- + + - + + - - - - - - - + - + + /> )} {secondaryButton} diff --git a/apps/web/core/components/common/layout-error-boundary.tsx b/apps/web/core/components/common/layout-error-boundary.tsx index 74ef8f3fbb8..27e40fe99d6 100644 --- a/apps/web/core/components/common/layout-error-boundary.tsx +++ b/apps/web/core/components/common/layout-error-boundary.tsx @@ -8,7 +8,7 @@ import { Component, Fragment } from "react"; import type { ErrorInfo, ReactNode } from "react"; import { AlertTriangle } from "lucide-react"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; type Props = { children: ReactNode; @@ -26,9 +26,7 @@ function LayoutErrorFallback({ onRetry }: { onRetry: () => void }) {

{t("something_went_wrong")}

- +
); } diff --git a/apps/web/core/components/common/new-empty-state.tsx b/apps/web/core/components/common/new-empty-state.tsx index 742ea3a6a88..1baaac204fb 100644 --- a/apps/web/core/components/common/new-empty-state.tsx +++ b/apps/web/core/components/common/new-empty-state.tsx @@ -7,7 +7,7 @@ import React, { useState } from "react"; // ui -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; type Props = { title: string; @@ -49,14 +49,15 @@ export function NewEmptyState({ title, description, image, primaryButton, disabl
{primaryButton && ( - + )} {comicBox && isHovered && diff --git a/apps/web/core/components/core/description-versions/modal.tsx b/apps/web/core/components/core/description-versions/modal.tsx index 854b50922cf..aa8715f40c2 100644 --- a/apps/web/core/components/core/description-versions/modal.tsx +++ b/apps/web/core/components/core/description-versions/modal.tsx @@ -9,7 +9,7 @@ import { observer } from "mobx-react"; // plane imports import type { EditorRefApi } from "@plane/editor"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { CopyIcon, ChevronLeftIcon, ChevronRightIcon } from "@plane/propel/icons"; import { setToast, TOAST_TYPE } from "@plane/propel/toast"; import { Tooltip } from "@plane/propel/tooltip"; @@ -160,20 +160,25 @@ export const DescriptionVersionsModal = observer(function DescriptionVersionsMod
- + + /> )}
diff --git a/apps/web/core/components/core/filters/date-filter-modal.tsx b/apps/web/core/components/core/filters/date-filter-modal.tsx index 0f1ac2c53c6..4f0a876370b 100644 --- a/apps/web/core/components/core/filters/date-filter-modal.tsx +++ b/apps/web/core/components/core/filters/date-filter-modal.tsx @@ -5,7 +5,7 @@ */ import { Controller, useForm } from "react-hook-form"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { Calendar } from "@plane/propel/calendar"; import { CloseIcon } from "@plane/propel/icons"; import { EModalPosition, EModalWidth, ModalCore } from "@plane/ui"; @@ -120,18 +120,16 @@ export function DateFilterModal({ title, handleClose, isOpen, onSelect }: Props) )}
- + + />
diff --git a/apps/web/core/components/core/image-picker-popover.tsx b/apps/web/core/components/core/image-picker-popover.tsx index be049801d85..498b1e96b2d 100644 --- a/apps/web/core/components/core/image-picker-popover.tsx +++ b/apps/web/core/components/core/image-picker-popover.tsx @@ -17,7 +17,8 @@ import { Input, InputGroup } from "@makeplane/propel/components/input"; import { ACCEPTED_COVER_IMAGE_MIME_TYPES_FOR_REACT_DROPZONE, MAX_FILE_SIZE } from "@plane/constants"; import { useOutsideClickDetector } from "@plane/hooks"; import { Tabs } from "@plane/propel/tabs"; -import { Button, getButtonStyling } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; +import { Button as ButtonElement } from "@makeplane/propel/elements/button"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import { EFileAssetType } from "@plane/types"; import { Loader } from "@plane/ui"; @@ -193,9 +194,15 @@ function ImagePickerPopoverComponent - + } + > {label} - + {isOpen && ( )} /> - + + /> + /> diff --git a/apps/web/core/components/core/modals/bulk-delete-issues-modal.tsx b/apps/web/core/components/core/modals/bulk-delete-issues-modal.tsx index 1d7b4099a06..66690ebd151 100644 --- a/apps/web/core/components/core/modals/bulk-delete-issues-modal.tsx +++ b/apps/web/core/components/core/modals/bulk-delete-issues-modal.tsx @@ -13,7 +13,7 @@ import { useForm } from "react-hook-form"; import { Combobox } from "@headlessui/react"; // plane imports import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { SearchIcon } from "@plane/propel/icons"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import type { ISearchIssueResponse, IUser } from "@plane/types"; @@ -199,12 +199,15 @@ export const BulkDeleteIssuesModal = observer(function BulkDeleteIssuesModal(pro {issues.length > 0 && (
- - +
)} diff --git a/apps/web/core/components/core/modals/change-email-modal.tsx b/apps/web/core/components/core/modals/change-email-modal.tsx index 73cd2e546d2..206e99af319 100644 --- a/apps/web/core/components/core/modals/change-email-modal.tsx +++ b/apps/web/core/components/core/modals/change-email-modal.tsx @@ -11,7 +11,7 @@ import { Controller, useForm } from "react-hook-form"; import { Field } from "@makeplane/propel/components/field"; import { Input, InputGroup } from "@makeplane/propel/components/input"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import { EModalPosition, EModalWidth, ModalCore } from "@plane/ui"; import { cn } from "@plane/utils"; @@ -205,16 +205,28 @@ export const ChangeEmailModal = observer(function ChangeEmailModal(props: Props) )}
- - +
diff --git a/apps/web/core/components/core/modals/existing-issues-list-modal.tsx b/apps/web/core/components/core/modals/existing-issues-list-modal.tsx index 646ce6c359a..e6e06b87f05 100644 --- a/apps/web/core/components/core/modals/existing-issues-list-modal.tsx +++ b/apps/web/core/components/core/modals/existing-issues-list-modal.tsx @@ -10,7 +10,7 @@ import { Combobox } from "@headlessui/react"; // i18n import { useTranslation } from "@plane/i18n"; // types -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { SearchIcon, CloseIcon } from "@plane/propel/icons"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import { Tooltip } from "@plane/propel/tooltip"; @@ -313,27 +313,29 @@ export function ExistingIssuesListModal(props: Props) {
- + + + + />
diff --git a/apps/web/core/components/core/modals/gpt-assistant-popover.tsx b/apps/web/core/components/core/modals/gpt-assistant-popover.tsx index cf087779d29..3fedd960a94 100644 --- a/apps/web/core/components/core/modals/gpt-assistant-popover.tsx +++ b/apps/web/core/components/core/modals/gpt-assistant-popover.tsx @@ -14,7 +14,7 @@ import { Popover, Transition } from "@headlessui/react"; // plane imports import { Input, InputGroup } from "@makeplane/propel/components/input"; import type { EditorRefApi } from "@plane/editor"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; // components @@ -181,13 +181,14 @@ export function GptAssistantPopover(props: Props) { const responseActionButton = response !== "" && ( + /> ); const generateResponseButtonText = isSubmitting @@ -290,12 +291,15 @@ export function GptAssistantPopover(props: Props) { )}
- - +
diff --git a/apps/web/core/components/core/modals/user-image-upload-modal.tsx b/apps/web/core/components/core/modals/user-image-upload-modal.tsx index ff688c7285e..b591c07ec99 100644 --- a/apps/web/core/components/core/modals/user-image-upload-modal.tsx +++ b/apps/web/core/components/core/modals/user-image-upload-modal.tsx @@ -9,7 +9,7 @@ import { observer } from "mobx-react"; import { useDropzone } from "react-dropzone"; // plane imports import { ACCEPTED_AVATAR_IMAGE_MIME_TYPES_FOR_REACT_DROPZONE, MAX_FILE_SIZE } from "@plane/constants"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { UserCirclePropertyIcon } from "@plane/propel/icons"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import { EFileAssetType } from "@plane/types"; @@ -143,16 +143,25 @@ export const UserImageUploadModal = observer(function UserImageUploadModal(props

File formats supported- .jpeg, .jpg, .png, .webp

- + - +
diff --git a/apps/web/core/components/core/modals/workspace-image-upload-modal.tsx b/apps/web/core/components/core/modals/workspace-image-upload-modal.tsx index c22ce52aad9..e491b784630 100644 --- a/apps/web/core/components/core/modals/workspace-image-upload-modal.tsx +++ b/apps/web/core/components/core/modals/workspace-image-upload-modal.tsx @@ -10,7 +10,7 @@ import { useParams } from "next/navigation"; import { useDropzone } from "react-dropzone"; // plane imports import { ACCEPTED_AVATAR_IMAGE_MIME_TYPES_FOR_REACT_DROPZONE, MAX_FILE_SIZE } from "@plane/constants"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { UserCirclePropertyIcon } from "@plane/propel/icons"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import { EFileAssetType } from "@plane/types"; @@ -156,16 +156,26 @@ export const WorkspaceImageUploadModal = observer(function WorkspaceImageUploadM

File formats supported- .jpeg, .jpg, .png, .webp

- + - +
diff --git a/apps/web/core/components/core/theme/custom-theme-selector.tsx b/apps/web/core/components/core/theme/custom-theme-selector.tsx index 47307776d85..4dd76e93b41 100644 --- a/apps/web/core/components/core/theme/custom-theme-selector.tsx +++ b/apps/web/core/components/core/theme/custom-theme-selector.tsx @@ -9,7 +9,7 @@ import { observer } from "mobx-react"; import { useForm } from "react-hook-form"; // plane imports import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import type { IUserTheme } from "@plane/types"; import { applyCustomTheme } from "@plane/utils"; @@ -116,9 +116,14 @@ export const CustomThemeSelector = observer(function CustomThemeSelector() {
{/* Save Theme Button */} - +
diff --git a/apps/web/core/components/core/theme/download-config-button.tsx b/apps/web/core/components/core/theme/download-config-button.tsx index c2ffc0bc3d8..47c2e2ff269 100644 --- a/apps/web/core/components/core/theme/download-config-button.tsx +++ b/apps/web/core/components/core/theme/download-config-button.tsx @@ -8,7 +8,7 @@ import { observer } from "mobx-react"; import type { UseFormGetValues } from "react-hook-form"; // plane imports import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { setToast, TOAST_TYPE } from "@plane/propel/toast"; import type { IUserTheme } from "@plane/types"; @@ -58,8 +58,13 @@ export const CustomThemeDownloadConfigButton = observer(function CustomThemeDown }; return ( - + + - + - + + + ); } @@ -106,16 +104,15 @@ function BackgroundButton(props: ButtonProps) { isMobile={isMobile} renderByDefault={renderToolTipByDefault} > - + ); } @@ -131,11 +128,10 @@ function TransparentButton(props: ButtonProps) { isMobile={isMobile} renderByDefault={renderToolTipByDefault} > - + ); } diff --git a/apps/web/core/components/dropdowns/layout.tsx b/apps/web/core/components/dropdowns/layout.tsx index f48b0e95705..4eae331fd97 100644 --- a/apps/web/core/components/dropdowns/layout.tsx +++ b/apps/web/core/components/dropdowns/layout.tsx @@ -4,16 +4,15 @@ * See the LICENSE file for details. */ -import { useCallback, useMemo } from "react"; +import { useMemo } from "react"; import { observer } from "mobx-react"; // plane imports import { ISSUE_LAYOUT_MAP } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; +import { Button } from "@makeplane/propel/elements/button"; import { CheckIcon } from "@plane/propel/icons"; import { EIssueLayoutTypes } from "@plane/types"; -import { getButtonStyling } from "@plane/propel/button"; -import { Dropdown } from "@plane/ui"; -import { cn } from "@plane/utils"; +import { CustomMenu } from "@plane/ui"; // components import { IssueLayoutIcon } from "@/components/issues/issue-layouts/layout-icon"; @@ -25,59 +24,37 @@ type TLayoutDropDown = { export const LayoutDropDown = observer(function LayoutDropDown(props: TLayoutDropDown) { const { onChange, value = EIssueLayoutTypes.LIST, disabledLayouts = [] } = props; - // plane i18n const { t } = useTranslation(); - // derived values const availableLayouts = useMemo( () => Object.values(ISSUE_LAYOUT_MAP).filter((layout) => !disabledLayouts.includes(layout.key)), [disabledLayouts] ); - - const options = useMemo( - () => - availableLayouts.map((issueLayout) => ({ - data: issueLayout.key, - value: issueLayout.key, - })), - [availableLayouts] - ); - - const buttonContent = useCallback((isOpen: boolean, buttonValue: string | string[] | undefined) => { - const dropdownValue = ISSUE_LAYOUT_MAP[buttonValue as EIssueLayoutTypes]; - return ( -
- - {t(dropdownValue.i18n_label)} -
- ); - }, []); - - const itemContent = useCallback((props: { value: string; selected: boolean }) => { - const dropdownValue = ISSUE_LAYOUT_MAP[props.value as EIssueLayoutTypes]; - - return ( -
-
- - {t(dropdownValue.i18n_label)} -
- {props.selected && } -
- ); - }, []); - - const keyExtractor = useCallback((option: any) => option.value, []); + const selectedLayout = ISSUE_LAYOUT_MAP[value]; return ( - void} - value={value?.toString()} - keyExtractor={keyExtractor} - options={options} - buttonContainerClassName={cn(getButtonStyling("secondary", "lg"))} - buttonContent={buttonContent} - renderItem={itemContent} - disableSearch - /> + }> + + {t(selectedLayout.i18n_label)} + + } + placement="bottom-end" + closeOnSelect + > + {availableLayouts.map((issueLayout) => ( + onChange(issueLayout.key)} + > +
+ + {t(issueLayout.i18n_label)} +
+ {value === issueLayout.key && } +
+ ))} +
); }); diff --git a/apps/web/core/components/editor/lite-text/toolbar.tsx b/apps/web/core/components/editor/lite-text/toolbar.tsx index dc955cddedf..0420a4b7314 100644 --- a/apps/web/core/components/editor/lite-text/toolbar.tsx +++ b/apps/web/core/components/editor/lite-text/toolbar.tsx @@ -13,7 +13,7 @@ import type { EditorRefApi } from "@plane/editor"; // i18n import { useTranslation } from "@plane/i18n"; // ui -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { GlobeIcon, LockIcon } from "@plane/propel/icons"; import type { ISvgIcons } from "@plane/propel/icons"; import { Tooltip } from "@plane/propel/tooltip"; @@ -177,16 +177,18 @@ export function IssueCommentToolbar(props: Props) { {showSubmitButton && (
- + +
)} diff --git a/apps/web/core/components/empty-state/comic-box-button.tsx b/apps/web/core/components/empty-state/comic-box-button.tsx index 222e0531f84..7452aaa4422 100644 --- a/apps/web/core/components/empty-state/comic-box-button.tsx +++ b/apps/web/core/components/empty-state/comic-box-button.tsx @@ -9,7 +9,7 @@ import { Fragment, useState } from "react"; import { usePopper } from "react-popper"; import { Popover } from "@headlessui/react"; // plane imports -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; type Props = { label: string; @@ -32,7 +32,7 @@ export function ComicBoxButton(props: Props) { setIsHovered(false); }; - const [referenceElement, setReferenceElement] = useState(null); + const [referenceElement, setReferenceElement] = useState(null); const [popperElement, setPopperElement] = useState(); const { styles, attributes } = usePopper(referenceElement, popperElement, { placement: "right-end", @@ -49,18 +49,25 @@ export function ComicBoxButton(props: Props) { return ( - +
{isHovered && ( diff --git a/apps/web/core/components/empty-state/detailed-empty-state-root.tsx b/apps/web/core/components/empty-state/detailed-empty-state-root.tsx index 593e5adda74..3e987ae1bfe 100644 --- a/apps/web/core/components/empty-state/detailed-empty-state-root.tsx +++ b/apps/web/core/components/empty-state/detailed-empty-state-root.tsx @@ -7,7 +7,7 @@ import React from "react"; import { observer } from "mobx-react"; // ui -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; // utils import { cn } from "@plane/utils"; @@ -50,15 +50,15 @@ function CustomButton({ }) { return ( + /> ); } diff --git a/apps/web/core/components/estimates/create/modal.tsx b/apps/web/core/components/estimates/create/modal.tsx index 518f6665095..3fa1284fc20 100644 --- a/apps/web/core/components/estimates/create/modal.tsx +++ b/apps/web/core/components/estimates/create/modal.tsx @@ -9,7 +9,7 @@ import { observer } from "mobx-react"; // plane imports import { EEstimateSystem, ESTIMATE_SYSTEMS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { ChevronLeftIcon } from "@plane/propel/icons"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import type { IEstimateFormData, TEstimateSystemKeys, TEstimatePointsObject, TEstimateTypeError } from "@plane/types"; @@ -200,13 +200,23 @@ export const CreateEstimateModal = observer(function CreateEstimateModal(props:
- + +
diff --git a/apps/web/core/components/estimates/delete/modal.tsx b/apps/web/core/components/estimates/delete/modal.tsx index e6b39fcdec2..99b0511f361 100644 --- a/apps/web/core/components/estimates/delete/modal.tsx +++ b/apps/web/core/components/estimates/delete/modal.tsx @@ -7,7 +7,7 @@ import { useState } from "react"; import { observer } from "mobx-react"; // ui -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import { EModalPosition, EModalWidth, ModalCore } from "@plane/ui"; // hooks @@ -76,12 +76,22 @@ export const DeleteEstimateModal = observer(function DeleteEstimateModal(props:
- - +
diff --git a/apps/web/core/components/estimates/points/create-root.tsx b/apps/web/core/components/estimates/points/create-root.tsx index ad3c57e9fd7..00927b2df05 100644 --- a/apps/web/core/components/estimates/points/create-root.tsx +++ b/apps/web/core/components/estimates/points/create-root.tsx @@ -9,7 +9,7 @@ import { useCallback, useState } from "react"; import { observer } from "mobx-react"; // plane imports import { estimateCount } from "@plane/constants"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { PlusIcon } from "@plane/propel/icons"; import type { TEstimatePointsObject, TEstimateSystemKeys, TEstimateTypeError } from "@plane/types"; import { Sortable } from "@plane/ui"; @@ -171,9 +171,14 @@ export const EstimatePointCreateRoot = observer(function EstimatePointCreateRoot /> ))} {estimatePoints && estimatePoints.length + (estimatePointCreate?.length || 0) <= estimateCount.max - 1 && ( - + + - + + + + /> + /> )} diff --git a/apps/web/core/components/exporter/single-export.tsx b/apps/web/core/components/exporter/single-export.tsx index 8bd05281e93..9f67e196c7e 100644 --- a/apps/web/core/components/exporter/single-export.tsx +++ b/apps/web/core/components/exporter/single-export.tsx @@ -6,7 +6,7 @@ import { useState } from "react"; // ui -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import type { IExportData } from "@plane/types"; // helpers import { getDate, renderFormattedDate } from "@plane/utils"; @@ -66,9 +66,7 @@ export function SingleExport({ service, refreshing }: Props) { {service.status == "completed" && (
- +
)} diff --git a/apps/web/core/components/global/product-updates/footer.tsx b/apps/web/core/components/global/product-updates/footer.tsx index 09965aac3e3..e2ae29b179f 100644 --- a/apps/web/core/components/global/product-updates/footer.tsx +++ b/apps/web/core/components/global/product-updates/footer.tsx @@ -6,10 +6,8 @@ import { useTranslation } from "@plane/i18n"; // ui -import { getButtonStyling } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { PlaneLogo } from "@plane/propel/icons"; -// helpers -import { cn } from "@plane/utils"; export function ProductUpdatesFooter() { const { t } = useTranslation(); @@ -58,18 +56,15 @@ export function ProductUpdatesFooter() { Forum - - - {t("powered_by_plane_pages")} - + - + + /> )} {canMarkAsDeclined && ( + /> )} {isAcceptedOrDeclined ? (
+ /> router.push(workItemLink)} target="_self"> - +
) : ( diff --git a/apps/web/core/components/inbox/inbox-filter/root.tsx b/apps/web/core/components/inbox/inbox-filter/root.tsx index 2413ccc382f..6a0909af7cb 100644 --- a/apps/web/core/components/inbox/inbox-filter/root.tsx +++ b/apps/web/core/components/inbox/inbox-filter/root.tsx @@ -5,10 +5,9 @@ */ import { ListFilter } from "lucide-react"; -import { getButtonStyling } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/elements/button"; // plane imports import { ChevronDownIcon } from "@plane/propel/icons"; -import { cn } from "@plane/utils"; // components import { FiltersDropdown } from "@/components/issues/issue-layouts/filters"; // hooks @@ -20,11 +19,11 @@ import { InboxIssueOrderByDropdown } from "./sorting/order-by"; const smallButton = ; const largeButton = ( -
+
+ ); export function FiltersRoot() { const windowSize = useSize(); diff --git a/apps/web/core/components/inbox/inbox-filter/sorting/order-by.tsx b/apps/web/core/components/inbox/inbox-filter/sorting/order-by.tsx index ad2e720c715..385a6473f53 100644 --- a/apps/web/core/components/inbox/inbox-filter/sorting/order-by.tsx +++ b/apps/web/core/components/inbox/inbox-filter/sorting/order-by.tsx @@ -8,13 +8,10 @@ import { observer } from "mobx-react"; import { ArrowDownWideNarrow, ArrowUpWideNarrow } from "lucide-react"; import { INBOX_ISSUE_ORDER_BY_OPTIONS, INBOX_ISSUE_SORT_BY_OPTIONS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { getButtonStyling } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/elements/button"; import { CheckIcon, ChevronDownIcon } from "@plane/propel/icons"; import type { TInboxIssueSortingOrderByKeys, TInboxIssueSortingSortByKeys } from "@plane/types"; import { CustomMenu } from "@plane/ui"; -// constants -// helpers -import { cn } from "@plane/utils"; // hooks import { useProjectInbox } from "@/hooks/store/use-project-inbox"; import useSize from "@/hooks/use-window-size"; @@ -33,7 +30,7 @@ export const InboxIssueOrderByDropdown = observer(function InboxIssueOrderByDrop ); const largeButton = ( -
+
+ ); return ( + /> + /> diff --git a/apps/web/core/components/inbox/modals/snooze-issue-modal.tsx b/apps/web/core/components/inbox/modals/snooze-issue-modal.tsx index 1ad83a6b0e5..700c517ca4d 100644 --- a/apps/web/core/components/inbox/modals/snooze-issue-modal.tsx +++ b/apps/web/core/components/inbox/modals/snooze-issue-modal.tsx @@ -7,7 +7,7 @@ import { useState } from "react"; // ui import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { Calendar } from "@plane/propel/calendar"; import { EModalPosition, EModalWidth, ModalCore } from "@plane/ui"; @@ -52,13 +52,14 @@ export function InboxIssueSnoozeModal(props: InboxIssueSnoozeModalProps) { /> + /> ); diff --git a/apps/web/core/components/instance/not-ready-view.tsx b/apps/web/core/components/instance/not-ready-view.tsx index 850d0af2ebc..998055c52e4 100644 --- a/apps/web/core/components/instance/not-ready-view.tsx +++ b/apps/web/core/components/instance/not-ready-view.tsx @@ -11,7 +11,7 @@ import GradientLogo from "@/app/assets/auth/gradient-logo.webp?url"; import GradientBgLogo from "@/app/assets/auth/gradient-bg-logo.webp?url"; import DefaultLayout from "@/layouts/default-layout"; import { PlaneLockup } from "@plane/propel/icons"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; export function InstanceNotReady() { return ( @@ -46,9 +46,7 @@ export function InstanceNotReady() {
- + + + + + - + + - + + + + label={t("issue.add.label")} + /> )} diff --git a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/issues-list/root.tsx b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/issues-list/root.tsx index ef808a1fe7c..c48c0192662 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/issues-list/root.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/issues-list/root.tsx @@ -9,7 +9,7 @@ import { observer } from "mobx-react"; // plane imports import { ListFilter } from "lucide-react"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import type { GroupByColumnTypes, TIssue, TIssueServiceType, TSubIssueOperations } from "@plane/types"; import { EIssueServiceType, EIssuesStoreType } from "@plane/types"; // hooks @@ -102,9 +102,13 @@ export const SubIssuesListRoot = observer(function SubIssuesListRoot(props: Prop icon={} customClassName={storeType !== EIssuesStoreType.EPIC ? "border-none" : ""} actionElement={ - + - ); + return + + /> diff --git a/apps/web/core/components/issues/issue-detail/links/create-update-link-modal.tsx b/apps/web/core/components/issues/issue-detail/links/create-update-link-modal.tsx index 91c3e4f403c..334eba7ffde 100644 --- a/apps/web/core/components/issues/issue-detail/links/create-update-link-modal.tsx +++ b/apps/web/core/components/issues/issue-detail/links/create-update-link-modal.tsx @@ -11,7 +11,7 @@ import { Field } from "@makeplane/propel/components/field"; import { Input, InputGroup } from "@makeplane/propel/components/input"; import { useTranslation } from "@plane/i18n"; // plane types -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import type { TIssueLinkEditableFields, TIssueServiceType } from "@plane/types"; // plane ui import { ModalCore } from "@plane/ui"; @@ -142,11 +142,12 @@ export const IssueLinkCreateUpdateModal = observer(function IssueLinkCreateUpdat
- -
diff --git a/apps/web/core/components/issues/issue-detail/subscription.tsx b/apps/web/core/components/issues/issue-detail/subscription.tsx index d9573d63c62..a06d1125655 100644 --- a/apps/web/core/components/issues/issue-detail/subscription.tsx +++ b/apps/web/core/components/issues/issue-detail/subscription.tsx @@ -12,7 +12,7 @@ import { Bell, BellOff } from "lucide-react"; import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; // UI -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import { EIssueServiceType } from "@plane/types"; import { Loader } from "@plane/ui"; @@ -82,23 +82,15 @@ export const IssueSubscription = observer(function IssueSubscription(props: TIss return (
+ loading={loading} + label={isSubscribed ? t("common.actions.unsubscribe") : t("common.actions.subscribe")} + />
); }); diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/helpers/dropdown.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/helpers/dropdown.tsx index fdf49f374a8..6ecdfab98a8 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/helpers/dropdown.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/helpers/dropdown.tsx @@ -10,7 +10,7 @@ import { usePopper } from "react-popper"; // headless ui import { Popover, Transition } from "@headlessui/react"; // ui -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; type Props = { children: React.ReactNode; @@ -55,35 +55,29 @@ export function FiltersDropdown(props: Props) { ) : (
-
+
+ label={title ?? ""} + /> + {isFiltersApplied && ( + + )}
+ />
)} diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/mobile-layout-selection.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/mobile-layout-selection.tsx index 14f74909465..6edf182d77d 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/mobile-layout-selection.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/mobile-layout-selection.tsx @@ -6,7 +6,7 @@ import { ISSUE_LAYOUTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { ChevronDownIcon } from "@plane/propel/icons"; import type { EIssueLayoutTypes } from "@plane/types"; import { CustomMenu } from "@plane/ui"; @@ -29,12 +29,19 @@ export function MobileLayoutSelection({ className="flex flex-grow justify-center text-13 text-secondary" placement="bottom-start" customButton={ - + + />
+ />
{moveToIssue && ( + /> )} diff --git a/apps/web/core/components/labels/create-update-label-inline.tsx b/apps/web/core/components/labels/create-update-label-inline.tsx index 70be4ca9198..8cac5a51d66 100644 --- a/apps/web/core/components/labels/create-update-label-inline.tsx +++ b/apps/web/core/components/labels/create-update-label-inline.tsx @@ -15,7 +15,7 @@ import { Field } from "@makeplane/propel/components/field"; import { Input, InputGroup } from "@makeplane/propel/components/input"; import { getRandomLabelColor, LABEL_COLOR_OPTIONS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import type { IIssueLabel } from "@plane/types"; @@ -238,19 +238,18 @@ export const CreateUpdateLabelInline = observer( )} /> - + + /> {errors.name?.message &&

{errors.name?.message}

} diff --git a/apps/web/core/components/labels/project-setting-label-list.tsx b/apps/web/core/components/labels/project-setting-label-list.tsx index 6bb506970ae..80c99a264af 100644 --- a/apps/web/core/components/labels/project-setting-label-list.tsx +++ b/apps/web/core/components/labels/project-setting-label-list.tsx @@ -10,7 +10,7 @@ import { useParams } from "next/navigation"; // plane imports import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { EmptyStateCompact } from "@plane/propel/empty-state"; import type { IIssueLabel } from "@plane/types"; import { Loader } from "@plane/ui"; @@ -85,9 +85,7 @@ export const ProjectSettingsLabelList = observer(function ProjectSettingsLabelLi description={t("project_settings.labels.description")} control={ isEditable && ( - + + onClick={() => { + if (product && price.id) { + handleCheckout({ + planVariant, + productId: product.id, + priceId: price.id, + }); + } + }} + disabled={!!upgradeLoaderType} + /> +
{isTrialAllowed && !isSelfHosted && (
{renderTrialButton && diff --git a/apps/web/core/components/license/modal/card/talk-to-sales.tsx b/apps/web/core/components/license/modal/card/talk-to-sales.tsx index c12ee704229..7869d7ddaa9 100644 --- a/apps/web/core/components/license/modal/card/talk-to-sales.tsx +++ b/apps/web/core/components/license/modal/card/talk-to-sales.tsx @@ -7,10 +7,9 @@ import { observer } from "mobx-react"; // types // plane imports -import { getButtonStyling } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import type { EProductSubscriptionEnum, IPaymentProduct, TSubscriptionPrice } from "@plane/types"; import { Loader } from "@plane/ui"; -import { cn } from "@plane/utils"; // local imports import { BasePaidPlanCard } from "./base-paid-plan-card"; @@ -72,9 +71,16 @@ export const TalkToSalesCard = observer(function TalkToSalesCard(props: TalkToSa ) : (
- - Talk to Sales - + + - +
diff --git a/apps/web/core/components/modules/dropdowns/order-by.tsx b/apps/web/core/components/modules/dropdowns/order-by.tsx index b33cf62cd37..0e615d55dfc 100644 --- a/apps/web/core/components/modules/dropdowns/order-by.tsx +++ b/apps/web/core/components/modules/dropdowns/order-by.tsx @@ -7,15 +7,11 @@ import { ArrowDownWideNarrow, ArrowUpWideNarrow } from "lucide-react"; import { MODULE_ORDER_BY_OPTIONS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { getButtonStyling } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/elements/button"; import { CheckIcon, ChevronDownIcon } from "@plane/propel/icons"; import type { TModuleOrderByOptions } from "@plane/types"; // ui import { CustomMenu } from "@plane/ui"; -// helpers -import { cn } from "@plane/utils"; -// types -// constants type Props = { onChange: (value: TModuleOrderByOptions) => void; @@ -35,11 +31,11 @@ export function ModuleOrderByDropdown(props: Props) { return ( + } placement="bottom-end" maxHeight="lg" diff --git a/apps/web/core/components/modules/form.tsx b/apps/web/core/components/modules/form.tsx index 3eb632eff76..5216929b12f 100644 --- a/apps/web/core/components/modules/form.tsx +++ b/apps/web/core/components/modules/form.tsx @@ -11,7 +11,7 @@ import { Field } from "@makeplane/propel/components/field"; import { Input, InputGroup } from "@makeplane/propel/components/input"; import { ETabIndices } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import type { IModule } from "@plane/types"; // ui import { TextArea } from "@plane/ui"; @@ -238,18 +238,31 @@ export function ModuleForm(props: Props) {
- - +
); diff --git a/apps/web/core/components/modules/links/create-update-modal.tsx b/apps/web/core/components/modules/links/create-update-modal.tsx index 3d437a07e01..03da1b45f00 100644 --- a/apps/web/core/components/modules/links/create-update-modal.tsx +++ b/apps/web/core/components/modules/links/create-update-modal.tsx @@ -7,9 +7,9 @@ import { useEffect } from "react"; import { Controller, useForm } from "react-hook-form"; // plane types +import { Button } from "@makeplane/propel/components/button"; import { Field } from "@makeplane/propel/components/field"; import { Input, InputGroup } from "@makeplane/propel/components/input"; -import { Button } from "@plane/propel/button"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import type { ILinkDetails, ModuleLink } from "@plane/types"; // plane ui @@ -144,12 +144,15 @@ export function CreateUpdateModuleLinkModal(props: Props) {
- - +
diff --git a/apps/web/core/components/onboarding/create-workspace.tsx b/apps/web/core/components/onboarding/create-workspace.tsx index b7eae164897..d07558d012d 100644 --- a/apps/web/core/components/onboarding/create-workspace.tsx +++ b/apps/web/core/components/onboarding/create-workspace.tsx @@ -13,7 +13,7 @@ import { Input, InputGroup } from "@makeplane/propel/components/input"; import { ORGANIZATION_SIZE, RESTRICTED_URLS } from "@plane/constants"; // types import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import type { IUser, IWorkspace, TOnboardingSteps } from "@plane/types"; // ui @@ -106,17 +106,15 @@ export const CreateWorkspace = observer(function CreateWorkspace(props: Props) {
{!!invitedWorkspaces && ( <> - + +
- + + stretch="full" + loading={isJoiningWorkspaces} + label={"Continue to workspace"} + />

or


- + + - + stretch="full" + loading={isSubmitting} + label={"Continue"} + /> + + + - + - + stretch="full" + loading={isSubmitting} + label={"Continue"} + /> + - + + + + stretch="full" + loading={isJoiningWorkspaces} + label={"Continue"} + /> + /> ) : ( diff --git a/apps/web/core/components/onboarding/switch-account-modal.tsx b/apps/web/core/components/onboarding/switch-account-modal.tsx index aa80f8e330a..2b1a793c33f 100644 --- a/apps/web/core/components/onboarding/switch-account-modal.tsx +++ b/apps/web/core/components/onboarding/switch-account-modal.tsx @@ -10,7 +10,7 @@ import { useTheme } from "next-themes"; import { ArrowRightLeft } from "lucide-react"; import { Dialog, Transition } from "@headlessui/react"; // ui -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; // hooks import { useUser } from "@/hooks/store/user"; @@ -104,9 +104,14 @@ export function SwitchAccountModal(props: Props) {
- +
diff --git a/apps/web/core/components/onboarding/tour/root.tsx b/apps/web/core/components/onboarding/tour/root.tsx index db87b7150b7..4180221e350 100644 --- a/apps/web/core/components/onboarding/tour/root.tsx +++ b/apps/web/core/components/onboarding/tour/root.tsx @@ -7,7 +7,7 @@ import { useState } from "react"; import { observer } from "mobx-react"; // plane imports -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { CloseIcon, PlaneLockup } from "@plane/propel/icons"; // assets import CyclesTour from "@/app/assets/onboarding/cycles.webp?url"; @@ -109,12 +109,13 @@ export const TourRoot = observer(function TourRoot(props: TOnboardingTourProps)
+ /> + +
{currentStepIndex === TOUR_STEPS.length - 1 && ( + /> )} diff --git a/apps/web/core/components/pages/list/order-by.tsx b/apps/web/core/components/pages/list/order-by.tsx index 2e9f22f0ad7..0fd53c5c869 100644 --- a/apps/web/core/components/pages/list/order-by.tsx +++ b/apps/web/core/components/pages/list/order-by.tsx @@ -6,7 +6,7 @@ import { ArrowDownWideNarrow, ArrowUpWideNarrow } from "lucide-react"; // plane imports -import { getButtonStyling } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/elements/button"; // types import { CheckIcon } from "@plane/propel/icons"; import type { TPageFiltersSortBy, TPageFiltersSortKey } from "@plane/types"; @@ -36,10 +36,10 @@ export function PageOrderByDropdown(props: Props) { return ( + } placement="bottom-end" maxHeight="lg" diff --git a/apps/web/core/components/pages/modals/export-page-modal.tsx b/apps/web/core/components/pages/modals/export-page-modal.tsx index cd21b2b5fa7..90f7e46ae54 100644 --- a/apps/web/core/components/pages/modals/export-page-modal.tsx +++ b/apps/web/core/components/pages/modals/export-page-modal.tsx @@ -12,7 +12,7 @@ import { useParams } from "react-router"; // plane editor import type { EditorRefApi } from "@plane/editor"; // plane ui -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import { CustomSelect, EModalPosition, EModalWidth, ModalCore } from "@plane/ui"; // components @@ -282,12 +282,15 @@ export function ExportPageModal(props: Props) {
- - +
diff --git a/apps/web/core/components/pages/modals/page-form.tsx b/apps/web/core/components/pages/modals/page-form.tsx index 84ba42750e8..7f1d78ea850 100644 --- a/apps/web/core/components/pages/modals/page-form.tsx +++ b/apps/web/core/components/pages/modals/page-form.tsx @@ -12,7 +12,7 @@ import type { LucideIcon } from "lucide-react"; import { Input, InputGroup } from "@makeplane/propel/components/input"; import { ETabIndices, EPageAccess } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { EmojiPicker, EmojiIconPickerTypes, Logo } from "@plane/propel/emoji-icon-picker"; import { GlobeIcon, LockIcon, PageIcon } from "@plane/propel/icons"; import type { ISvgIcons } from "@plane/propel/icons"; @@ -147,19 +147,24 @@ export function PageForm(props: Props) {
{t(i18n_access_label || "")}
- + + />
diff --git a/apps/web/core/components/pages/version/main-content.tsx b/apps/web/core/components/pages/version/main-content.tsx index 5cd3b76794e..092c55b393f 100644 --- a/apps/web/core/components/pages/version/main-content.tsx +++ b/apps/web/core/components/pages/version/main-content.tsx @@ -9,7 +9,7 @@ import { observer } from "mobx-react"; import useSWR from "swr"; import { EyeIcon, TriangleAlert } from "lucide-react"; // plane imports -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import type { TPageVersion } from "@plane/types"; import { renderFormattedDate, renderFormattedTime } from "@plane/utils"; @@ -93,9 +93,14 @@ export const PageVersionsMainContent = observer(function PageVersionsMainContent
Something went wrong!

The version could not be loaded, please try again.

- + + + + - + + + /> diff --git a/apps/web/core/components/project/card.tsx b/apps/web/core/components/project/card.tsx index c9286d15faf..47ab8d1a6a5 100644 --- a/apps/web/core/components/project/card.tsx +++ b/apps/web/core/components/project/card.tsx @@ -12,7 +12,7 @@ import { ArchiveRestoreIcon, Settings, UserPlus } from "lucide-react"; // plane imports import { EUserPermissions, EUserPermissionsLevel, IS_FAVORITE_MENU_OPEN } from "@plane/constants"; import { useLocalStorage } from "@plane/hooks"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { Logo } from "@plane/propel/emoji-icon-picker"; import { LinkIcon, LockIcon, NewTabIcon, TrashIcon, CheckIcon } from "@plane/propel/icons"; import { setPromiseToast, setToast, TOAST_TYPE } from "@plane/propel/toast"; @@ -353,17 +353,19 @@ export const ProjectCard = observer(function ProjectCard(props: Props) { ))} {!isMemberOfProject && (
- + +
)} diff --git a/apps/web/core/components/project/confirm-project-member-remove.tsx b/apps/web/core/components/project/confirm-project-member-remove.tsx index 52a7c30600e..06cea55a61e 100644 --- a/apps/web/core/components/project/confirm-project-member-remove.tsx +++ b/apps/web/core/components/project/confirm-project-member-remove.tsx @@ -9,7 +9,7 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import { AlertTriangle } from "lucide-react"; // types -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import type { IUserLite } from "@plane/types"; // ui import { EModalPosition, EModalWidth, ModalCore } from "@plane/ui"; @@ -82,12 +82,18 @@ export const ConfirmProjectMemberRemove = observer(function ConfirmProjectMember
- - +
); diff --git a/apps/web/core/components/project/create/project-create-buttons.tsx b/apps/web/core/components/project/create/project-create-buttons.tsx index ae66ca71919..50a307fcbce 100644 --- a/apps/web/core/components/project/create/project-create-buttons.tsx +++ b/apps/web/core/components/project/create/project-create-buttons.tsx @@ -8,7 +8,7 @@ import { useFormContext } from "react-hook-form"; // plane imports import { ETabIndices } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import type { IProject } from "@plane/types"; // ui // helpers @@ -30,12 +30,23 @@ function ProjectCreateButtons(props: Props) { return (
- - +
); } diff --git a/apps/web/core/components/project/delete-project-modal.tsx b/apps/web/core/components/project/delete-project-modal.tsx index dbdf0a38259..00e2575705a 100644 --- a/apps/web/core/components/project/delete-project-modal.tsx +++ b/apps/web/core/components/project/delete-project-modal.tsx @@ -8,9 +8,9 @@ import { useParams } from "next/navigation"; import { Controller, useForm } from "react-hook-form"; import { AlertTriangle } from "lucide-react"; // Plane imports +import { Button } from "@makeplane/propel/components/button"; import { Field } from "@makeplane/propel/components/field"; import { Input, InputGroup } from "@makeplane/propel/components/input"; -import { Button } from "@plane/propel/button"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import type { IProject } from "@plane/types"; import { EModalPosition, EModalWidth, ModalCore } from "@plane/ui"; @@ -147,12 +147,16 @@ export function DeleteProjectModal(props: DeleteProjectModal) { />
- - +
diff --git a/apps/web/core/components/project/dropdowns/filters/member-list.tsx b/apps/web/core/components/project/dropdowns/filters/member-list.tsx index bb8acd15ecc..f50778293e0 100644 --- a/apps/web/core/components/project/dropdowns/filters/member-list.tsx +++ b/apps/web/core/components/project/dropdowns/filters/member-list.tsx @@ -7,7 +7,7 @@ import { useState } from "react"; import { observer } from "mobx-react"; // plane imports -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { ChevronDownIcon } from "@plane/propel/icons"; import { EUserProjectRoles, EUserWorkspaceRoles } from "@plane/types"; // plane ui @@ -101,10 +101,14 @@ export const MemberListFiltersDropdown = observer(function MemberListFiltersDrop - + } placement="bottom-end" closeOnSelect diff --git a/apps/web/core/components/project/empty-state.tsx b/apps/web/core/components/project/empty-state.tsx index 4e4bce83880..f12a689bcc8 100644 --- a/apps/web/core/components/project/empty-state.tsx +++ b/apps/web/core/components/project/empty-state.tsx @@ -6,7 +6,7 @@ import React from "react"; // ui -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; type Props = { title: string; @@ -33,14 +33,14 @@ export function EmptyState({ title, description, image, primaryButton, secondary
{primaryButton && ( + /> )} {secondaryButton}
diff --git a/apps/web/core/components/project/form.tsx b/apps/web/core/components/project/form.tsx index b241eb30bdb..9db685ca9a9 100644 --- a/apps/web/core/components/project/form.tsx +++ b/apps/web/core/components/project/form.tsx @@ -12,7 +12,7 @@ import { Input, InputGroup } from "@makeplane/propel/components/input"; import { NETWORK_CHOICES } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; // plane imports -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { EmojiPicker, EmojiIconPickerTypes, Logo } from "@plane/propel/emoji-icon-picker"; import { LockIcon } from "@plane/propel/icons"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; @@ -446,9 +446,15 @@ export function ProjectDetailsForm(props: IProjectDetailsForm) {
<> - + + label={t("workspace_projects.create.label")} + /> ) : ( <> )} diff --git a/apps/web/core/components/project/join-project-modal.tsx b/apps/web/core/components/project/join-project-modal.tsx index 8d1088440b2..ac581d5a818 100644 --- a/apps/web/core/components/project/join-project-modal.tsx +++ b/apps/web/core/components/project/join-project-modal.tsx @@ -6,7 +6,7 @@ import { useState } from "react"; // types -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import type { IProject } from "@plane/types"; // ui import { EModalPosition, EModalWidth, ModalCore } from "@plane/ui"; @@ -59,12 +59,17 @@ export function JoinProjectModal(props: TJoinProjectModalProps) {
- - +
); diff --git a/apps/web/core/components/project/leave-project-modal.tsx b/apps/web/core/components/project/leave-project-modal.tsx index c6e019d78d8..db029d83bc4 100644 --- a/apps/web/core/components/project/leave-project-modal.tsx +++ b/apps/web/core/components/project/leave-project-modal.tsx @@ -9,9 +9,9 @@ import { useParams } from "next/navigation"; import { Controller, useForm } from "react-hook-form"; import { AlertTriangleIcon } from "lucide-react"; // Plane imports +import { Button } from "@makeplane/propel/components/button"; import { Field } from "@makeplane/propel/components/field"; import { Input, InputGroup } from "@makeplane/propel/components/input"; -import { Button } from "@plane/propel/button"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import type { IProject } from "@plane/types"; import { EModalPosition, EModalWidth, ModalCore } from "@plane/ui"; @@ -171,12 +171,15 @@ export const LeaveProjectModal = observer(function LeaveProjectModal(props: ILea />
- - +
diff --git a/apps/web/core/components/project/member-list.tsx b/apps/web/core/components/project/member-list.tsx index e5d2122110c..56d8f4ef251 100644 --- a/apps/web/core/components/project/member-list.tsx +++ b/apps/web/core/components/project/member-list.tsx @@ -9,7 +9,7 @@ import { observer } from "mobx-react"; // plane imports import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { SearchIcon } from "@plane/propel/icons"; // components import { MembersSettingsLoader } from "@/components/ui/loader/settings/members"; @@ -102,12 +102,13 @@ export const ProjectMemberList = observer(function ProjectMemberList(props: TPro {isAdmin && ( + /> )} diff --git a/apps/web/core/components/project/multi-select-modal.tsx b/apps/web/core/components/project/multi-select-modal.tsx index 8f7952c5ff8..ef865d7ad01 100644 --- a/apps/web/core/components/project/multi-select-modal.tsx +++ b/apps/web/core/components/project/multi-select-modal.tsx @@ -11,7 +11,7 @@ import { useTheme } from "next-themes"; import { Combobox } from "@headlessui/react"; // plane ui import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { Logo } from "@plane/propel/emoji-icon-picker"; import { SearchIcon, CloseIcon } from "@plane/propel/icons"; import { Checkbox } from "@makeplane/propel/components/checkbox"; @@ -179,19 +179,17 @@ export const ProjectMultiSelectModal = observer(function ProjectMultiSelectModal
- + + />
); diff --git a/apps/web/core/components/project/project-feature-update.tsx b/apps/web/core/components/project/project-feature-update.tsx index 931f36b3476..fac59cd8d9f 100644 --- a/apps/web/core/components/project/project-feature-update.tsx +++ b/apps/web/core/components/project/project-feature-update.tsx @@ -8,7 +8,7 @@ import { observer } from "mobx-react"; import Link from "next/link"; import { useTranslation } from "@plane/i18n"; // ui -import { Button, getButtonStyling } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { Logo } from "@plane/propel/emoji-icon-picker"; import { Row } from "@plane/ui"; // components @@ -46,18 +46,17 @@ export const ProjectFeatureUpdate = observer(function ProjectFeatureUpdate(props
{/* eslint-disable-next-line jsx-a11y/tabindex-no-positive */} - - +
diff --git a/apps/web/core/components/project/publish-project/modal.tsx b/apps/web/core/components/project/publish-project/modal.tsx index 7bbd38a2c78..a80e49953a6 100644 --- a/apps/web/core/components/project/publish-project/modal.tsx +++ b/apps/web/core/components/project/publish-project/modal.tsx @@ -11,7 +11,7 @@ import { Controller, useForm } from "react-hook-form"; // types import { SPACE_BASE_PATH, SPACE_BASE_URL } from "@plane/constants"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { GlobeIcon, NewTabIcon, CheckIcon } from "@plane/propel/icons"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import type { TProjectPublishLayouts, TProjectPublishSettings } from "@plane/types"; @@ -184,13 +184,13 @@ export const PublishProjectModal = observer(function PublishProjectModal(props:
Publish project
{isProjectPublished && ( + /> )} @@ -320,19 +320,27 @@ export const PublishProjectModal = observer(function PublishProjectModal(props: {!fetchSettingsLoader && (
- + + +
)} diff --git a/apps/web/core/components/project/send-project-invitation-modal.tsx b/apps/web/core/components/project/send-project-invitation-modal.tsx index f57369ac14e..33fc9f2a05e 100644 --- a/apps/web/core/components/project/send-project-invitation-modal.tsx +++ b/apps/web/core/components/project/send-project-invitation-modal.tsx @@ -10,7 +10,7 @@ import { useForm, Controller, useFieldArray } from "react-hook-form"; // plane imports import { ROLE, EUserPermissions } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { PlusIcon, CloseIcon, ChevronDownIcon } from "@plane/propel/icons"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import { Avatar, CustomSelect, CustomSearchSelect, EModalPosition, EModalWidth, ModalCore } from "@plane/ui"; @@ -297,14 +297,19 @@ export const SendProjectInvitationModal = observer(function SendProjectInvitatio {t("common.add_more")}
- - +
diff --git a/apps/web/core/components/project/settings/control-section.tsx b/apps/web/core/components/project/settings/control-section.tsx index de56790c885..d142d74874a 100644 --- a/apps/web/core/components/project/settings/control-section.tsx +++ b/apps/web/core/components/project/settings/control-section.tsx @@ -9,7 +9,7 @@ import { observer } from "mobx-react"; import { useParams } from "react-router"; // plane imports import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; // components import { SettingsBoxedControlItem } from "@/components/settings/boxed-control-item"; // hooks @@ -61,9 +61,13 @@ export const GeneralProjectSettingsControlSection = observer(function GeneralPro title={t("archive")} description="Archiving a project will unlist your project from your side navigation although you will still be able to access it from your projects page. You can restore the project or delete it whenever you want." control={ - + + + } /> ); diff --git a/apps/web/core/components/rich-filters/filters-row.tsx b/apps/web/core/components/rich-filters/filters-row.tsx index 5b8aa933189..f415e529cd8 100644 --- a/apps/web/core/components/rich-filters/filters-row.tsx +++ b/apps/web/core/components/rich-filters/filters-row.tsx @@ -9,7 +9,7 @@ import { observer } from "mobx-react"; import { ListFilterPlus } from "lucide-react"; import { Transition } from "@headlessui/react"; // plane imports -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import type { IFilterInstance } from "@plane/shared-state"; import type { TExternalFilter, TFilterProperty } from "@plane/types"; import { cn, EHeaderVariant, Header, Loader } from "@plane/ui"; @@ -79,25 +79,39 @@ export const FiltersRow = observer(function FiltersRow - + + + + + + + + + + + + + ) } placement="bottom-end" className="flex w-full justify-center" diff --git a/apps/web/core/components/views/form.tsx b/apps/web/core/components/views/form.tsx index ae5712da0e5..f7eacaae699 100644 --- a/apps/web/core/components/views/form.tsx +++ b/apps/web/core/components/views/form.tsx @@ -12,7 +12,7 @@ import { Field } from "@makeplane/propel/components/field"; import { Input, InputGroup } from "@makeplane/propel/components/input"; import { ETabIndices, ISSUE_DISPLAY_FILTERS_BY_PAGE } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { EmojiPicker, EmojiIconPickerTypes, Logo } from "@plane/propel/emoji-icon-picker"; import { ViewsIcon } from "@plane/propel/icons"; import type { @@ -284,18 +284,31 @@ export const ProjectViewForm = observer(function ProjectViewForm(props: Props) {
- - +
); diff --git a/apps/web/core/components/web-hooks/empty-state.tsx b/apps/web/core/components/web-hooks/empty-state.tsx index e79debd0690..48fa3106507 100644 --- a/apps/web/core/components/web-hooks/empty-state.tsx +++ b/apps/web/core/components/web-hooks/empty-state.tsx @@ -6,7 +6,7 @@ import React from "react"; // ui -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; // assets import EmptyWebhook from "@/app/assets/empty-state/web-hook.svg?url"; @@ -24,9 +24,9 @@ export function WebhooksEmptyState(props: Props) { empty
No webhooks

Create webhooks to receive real-time updates and automate actions

- + + + + + + + /> )} diff --git a/apps/web/core/components/web-hooks/generated-hook-details.tsx b/apps/web/core/components/web-hooks/generated-hook-details.tsx index 03755264a46..795066bc4c9 100644 --- a/apps/web/core/components/web-hooks/generated-hook-details.tsx +++ b/apps/web/core/components/web-hooks/generated-hook-details.tsx @@ -7,7 +7,7 @@ // components // ui import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import type { IWebhook } from "@plane/types"; // types import { WebhookSecretKey } from "./form"; @@ -31,9 +31,7 @@ export function GeneratedHookDetails(props: Props) {
- +
); diff --git a/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/snooze/modal.tsx b/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/snooze/modal.tsx index 02e8c353c39..5c74b155c74 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/snooze/modal.tsx +++ b/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/snooze/modal.tsx @@ -8,7 +8,7 @@ import { useParams } from "next/navigation"; import { useForm, Controller } from "react-hook-form"; // plane imports import { allTimeIn30MinutesInterval12HoursFormat } from "@plane/constants"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { CloseIcon } from "@plane/propel/icons"; import { CustomSelect, EModalPosition, EModalWidth, ModalCore } from "@plane/ui"; // components @@ -215,12 +215,15 @@ export function NotificationSnoozeModal(props: TNotificationSnoozeModal) {
- - +
diff --git a/apps/web/core/components/workspace/ConfirmWorkspaceMemberRemove.tsx b/apps/web/core/components/workspace/ConfirmWorkspaceMemberRemove.tsx index e8f1d632887..d1611cd0b28 100644 --- a/apps/web/core/components/workspace/ConfirmWorkspaceMemberRemove.tsx +++ b/apps/web/core/components/workspace/ConfirmWorkspaceMemberRemove.tsx @@ -8,7 +8,7 @@ import React, { useState } from "react"; import { observer } from "mobx-react"; import { AlertTriangle } from "lucide-react"; import { Dialog, Transition } from "@headlessui/react"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { useUser } from "@/hooks/store/user"; import type { Props } from "./confirm-workspace-member-remove"; @@ -88,18 +88,24 @@ export const ConfirmWorkspaceMemberRemove = observer(function ConfirmWorkspaceMe
- - +
diff --git a/apps/web/core/components/workspace/billing/comparison/base.tsx b/apps/web/core/components/workspace/billing/comparison/base.tsx index b09965a0282..4c98178b65b 100644 --- a/apps/web/core/components/workspace/billing/comparison/base.tsx +++ b/apps/web/core/components/workspace/billing/comparison/base.tsx @@ -7,7 +7,7 @@ import { observer } from "mobx-react"; import { ArrowDown, ArrowUp } from "lucide-react"; // plane imports -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { cn } from "@plane/utils"; // constants import type { TPlanePlans } from "@/components/workspace/billing/comparison/plans"; @@ -127,13 +127,15 @@ export const PlansComparisonBase = observer(function PlansComparisonBase(props:
+ />
diff --git a/apps/web/core/components/workspace/billing/comparison/plan-detail.tsx b/apps/web/core/components/workspace/billing/comparison/plan-detail.tsx index 27d2b8cf141..c0b62c1ce6a 100644 --- a/apps/web/core/components/workspace/billing/comparison/plan-detail.tsx +++ b/apps/web/core/components/workspace/billing/comparison/plan-detail.tsx @@ -12,7 +12,7 @@ import { TALK_TO_SALES_URL, } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import type { TBillingFrequency } from "@plane/types"; import { EProductSubscriptionEnum } from "@plane/types"; import { getSubscriptionName } from "@plane/utils"; @@ -100,9 +100,13 @@ export const PlanDetail = observer(function PlanDetail(props: TPlanDetailProps) {/* Subscription button */}
- +
); diff --git a/apps/web/core/components/workspace/confirm-workspace-member-remove.tsx b/apps/web/core/components/workspace/confirm-workspace-member-remove.tsx index 9ec6dc42806..76c96604637 100644 --- a/apps/web/core/components/workspace/confirm-workspace-member-remove.tsx +++ b/apps/web/core/components/workspace/confirm-workspace-member-remove.tsx @@ -9,7 +9,7 @@ import { observer } from "mobx-react"; import { AlertTriangle } from "lucide-react"; // ui import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { EModalPosition, EModalWidth, ModalCore } from "@plane/ui"; // hooks import { useUser } from "@/hooks/store/user"; @@ -73,18 +73,24 @@ export const ConfirmWorkspaceMemberRemove = observer(function ConfirmWorkspaceMe
- - +
); diff --git a/apps/web/core/components/workspace/create-workspace-form.tsx b/apps/web/core/components/workspace/create-workspace-form.tsx index ae73a70f7d9..220b483a5a8 100644 --- a/apps/web/core/components/workspace/create-workspace-form.tsx +++ b/apps/web/core/components/workspace/create-workspace-form.tsx @@ -12,7 +12,7 @@ import { Field } from "@makeplane/propel/components/field"; import { Input, InputGroup } from "@makeplane/propel/components/input"; import { ORGANIZATION_SIZE, RESTRICTED_URLS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import type { IWorkspace } from "@plane/types"; // ui @@ -247,13 +247,24 @@ export const CreateWorkspaceForm = observer(function CreateWorkspaceForm(props:
{secondaryButton} - + +
diff --git a/apps/web/core/components/workspace/delete-workspace-form.tsx b/apps/web/core/components/workspace/delete-workspace-form.tsx index 6c9d6fb33bf..92845b9c1ee 100644 --- a/apps/web/core/components/workspace/delete-workspace-form.tsx +++ b/apps/web/core/components/workspace/delete-workspace-form.tsx @@ -11,7 +11,7 @@ import { AlertTriangle } from "lucide-react"; import { Field } from "@makeplane/propel/components/field"; import { Input, InputGroup } from "@makeplane/propel/components/input"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import type { IWorkspace } from "@plane/types"; @@ -159,12 +159,16 @@ export const DeleteWorkspaceForm = observer(function DeleteWorkspaceForm(props:
- - +
); diff --git a/apps/web/core/components/workspace/delete-workspace-section.tsx b/apps/web/core/components/workspace/delete-workspace-section.tsx index 6a6f845d077..e8c561c545d 100644 --- a/apps/web/core/components/workspace/delete-workspace-section.tsx +++ b/apps/web/core/components/workspace/delete-workspace-section.tsx @@ -8,7 +8,7 @@ import { useState } from "react"; import { observer } from "mobx-react"; // plane imports import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import type { IWorkspace } from "@plane/types"; // components import { SettingsBoxedControlItem } from "@/components/settings/boxed-control-item"; @@ -37,9 +37,13 @@ export const DeleteWorkspaceSection = observer(function DeleteWorkspaceSection(p title={t("workspace_settings.settings.general.delete_workspace")} description={t("workspace_settings.settings.general.delete_workspace_description")} control={ - + + /> ); diff --git a/apps/web/core/components/workspace/invite-modal/actions.tsx b/apps/web/core/components/workspace/invite-modal/actions.tsx index 23b5f4d0dda..f5249710303 100644 --- a/apps/web/core/components/workspace/invite-modal/actions.tsx +++ b/apps/web/core/components/workspace/invite-modal/actions.tsx @@ -8,7 +8,7 @@ import { observer } from "mobx-react"; // plane imports import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { PlusIcon } from "@plane/propel/icons"; import { cn } from "@plane/utils"; @@ -57,14 +57,26 @@ export const InvitationModalActions = observer(function InvitationModalActions(p {addMoreButtonText || t("common.add_more")}
- - +
); diff --git a/apps/web/core/components/workspace/settings/workspace-details.tsx b/apps/web/core/components/workspace/settings/workspace-details.tsx index 8b6dff916ee..cf1095b9d5e 100644 --- a/apps/web/core/components/workspace/settings/workspace-details.tsx +++ b/apps/web/core/components/workspace/settings/workspace-details.tsx @@ -12,7 +12,7 @@ import { Field } from "@makeplane/propel/components/field"; import { Input, InputGroup } from "@makeplane/propel/components/input"; import { ORGANIZATION_SIZE, EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { EditIcon } from "@plane/propel/icons"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import type { IWorkspace } from "@plane/types"; @@ -293,14 +293,14 @@ export const WorkspaceDetails = observer(function WorkspaceDetails() {
+ />
)} diff --git a/apps/web/core/components/workspace/sidebar/quick-actions.tsx b/apps/web/core/components/workspace/sidebar/quick-actions.tsx index f1d6bd80ae5..e9a32f88900 100644 --- a/apps/web/core/components/workspace/sidebar/quick-actions.tsx +++ b/apps/web/core/components/workspace/sidebar/quick-actions.tsx @@ -79,12 +79,8 @@ export const SidebarQuickActions = observer(function SidebarQuickActions() { />
- - {t("sidebar.new_work_item")} - - } + label={t("sidebar.new_work_item")} + icon={} onClick={() => toggleCreateIssueModal(true)} disabled={disabled} onMouseEnter={handleMouseEnter} diff --git a/apps/web/core/components/workspace/views/form.tsx b/apps/web/core/components/workspace/views/form.tsx index 73350a9b075..80494ed0412 100644 --- a/apps/web/core/components/workspace/views/form.tsx +++ b/apps/web/core/components/workspace/views/form.tsx @@ -11,7 +11,7 @@ import { Field } from "@makeplane/propel/components/field"; import { Input, InputGroup } from "@makeplane/propel/components/input"; import { ISSUE_DISPLAY_FILTERS_BY_PAGE } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { Button } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import type { IIssueDisplayFilterOptions, IIssueDisplayProperties, IWorkspaceView, IIssueFilters } from "@plane/types"; import { EViewAccess, EIssueLayoutTypes, EIssuesStoreType } from "@plane/types"; import { TextArea } from "@plane/ui"; @@ -189,18 +189,23 @@ export const WorkspaceViewForm = observer(function WorkspaceViewForm(props: Prop
- - +
); diff --git a/apps/web/core/layouts/auth-layout/workspace-wrapper.tsx b/apps/web/core/layouts/auth-layout/workspace-wrapper.tsx index e74dfd55dbe..0366613f3e5 100644 --- a/apps/web/core/layouts/auth-layout/workspace-wrapper.tsx +++ b/apps/web/core/layouts/auth-layout/workspace-wrapper.tsx @@ -12,11 +12,10 @@ import useSWR from "swr"; // ui import { LogOut } from "lucide-react"; import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; -import { Button, getButtonStyling } from "@plane/propel/button"; +import { Button } from "@makeplane/propel/components/button"; import { PlaneLogo } from "@plane/propel/icons"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import { Tooltip } from "@plane/propel/tooltip"; -import { cn } from "@plane/utils"; // assets import WorkSpaceNotAvailable from "@/app/assets/workspace/workspace-not-available.png?url"; // components @@ -179,19 +178,34 @@ export const WorkspaceAuthWrapper = observer(function WorkspaceAuthWrapper(props

{allWorkspaces && allWorkspaces.length > 0 && ( - - Go Home - +
@@ -216,16 +230,22 @@ export const WorkspaceAuthWrapper = observer(function WorkspaceAuthWrapper(props

- - - - - - - - - - +
From 550b46a1b5fefb0a30ba9149c3c3fac0f72eeccf Mon Sep 17 00:00:00 2001 From: anmolsinghbhatia Date: Mon, 31 Aug 2026 14:10:18 +0530 Subject: [PATCH 2/3] fix: address Button migration review on web call sites Use IconButton for icon-only controls and AnchorButton for link-styled actions. Add accessible names on render anchors, un-nest link+button pairs, restore compact header labels, and pass through empty-state variant/icon props. --- .../[workspaceSlug]/(projects)/header.tsx | 12 ++++++- .../(projects)/profile/[userId]/header.tsx | 12 ++++--- .../[projectId]/cycles/(list)/header.tsx | 33 ++++++++++++++----- .../[projectId]/modules/(list)/header.tsx | 33 ++++++++++++++----- apps/web/app/(all)/create-workspace/page.tsx | 7 +++- .../account/auth-forms/forgot-password.tsx | 6 ++-- .../workspace-active-cycles-upgrade.tsx | 4 ++- .../components/common/new-empty-state.tsx | 1 + .../empty-state/detailed-empty-state-root.tsx | 8 ++--- .../components/exporter/single-export.tsx | 18 ++++++++-- .../global/product-updates/footer.tsx | 4 ++- .../inbox/content/inbox-issue-header.tsx | 27 ++++++++++----- .../components/instance/not-ready-view.tsx | 13 ++++++-- .../issues/bulk-operations/upgrade-banner.tsx | 9 ++++- .../filters/header/helpers/dropdown.tsx | 30 ++++++++++++----- .../license/modal/card/talk-to-sales.tsx | 2 +- .../components/onboarding/invitations.tsx | 2 +- .../components/onboarding/steps/role/root.tsx | 2 +- apps/web/core/components/project/card.tsx | 24 +++++++------- .../web-hooks/generated-hook-details.tsx | 2 +- 20 files changed, 174 insertions(+), 75 deletions(-) diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/header.tsx index 572ebe6d2ee..be884294e24 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/header.tsx @@ -9,6 +9,7 @@ import { Shapes } from "lucide-react"; // plane imports import { useTranslation } from "@plane/i18n"; import { Button } from "@makeplane/propel/components/button"; +import { IconButton } from "@makeplane/propel/components/icon-button"; import { HomeIcon } from "@plane/propel/icons"; import { Breadcrumbs, Header } from "@plane/ui"; // components @@ -37,7 +38,7 @@ export const WorkspaceDashboardHeader = observer(function WorkspaceDashboardHead - + + } + onClick={() => toggleProfileSidebar()} + /> diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/header.tsx index 83c4e057876..e12c08c539a 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/header.tsx @@ -60,15 +60,30 @@ export const CyclesListHeader = observer(function CyclesListHeader() { {canUserCreateCycle && currentProjectDetails ? ( -