+
{children}
{selected && }
From 1b427392c4e07704985f61cb77565146147ba129 Mon Sep 17 00:00:00 2001
From: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com>
Date: Fri, 12 Dec 2025 18:29:11 +0530
Subject: [PATCH 026/266] [WEB-5124] chore: intake work item toast enhancements
(#8329)
---
.../core/components/inbox/content/inbox-issue-header.tsx | 1 +
apps/web/core/components/issues/issue-modal/base.tsx | 9 +++++++++
apps/web/core/components/issues/issue-modal/modal.tsx | 1 +
3 files changed, 11 insertions(+)
diff --git a/apps/web/core/components/inbox/content/inbox-issue-header.tsx b/apps/web/core/components/inbox/content/inbox-issue-header.tsx
index 43a86763cf6..e5084189df1 100644
--- a/apps/web/core/components/inbox/content/inbox-issue-header.tsx
+++ b/apps/web/core/components/inbox/content/inbox-issue-header.tsx
@@ -241,6 +241,7 @@ export const InboxIssueActionsHeader = observer(function InboxIssueActionsHeader
beforeFormSubmit={handleInboxIssueAccept}
withDraftIssueWrapper={false}
fetchIssueDetails={false}
+ showActionItemsOnUpdate
modalTitle={t("inbox_issue.actions.move", {
value: `${currentProjectDetails?.identifier}-${issue?.sequence_id}`,
})}
diff --git a/apps/web/core/components/issues/issue-modal/base.tsx b/apps/web/core/components/issues/issue-modal/base.tsx
index 553f9ff21b5..22d5cda2aef 100644
--- a/apps/web/core/components/issues/issue-modal/base.tsx
+++ b/apps/web/core/components/issues/issue-modal/base.tsx
@@ -44,6 +44,7 @@ export const CreateUpdateIssueModalBase = observer(function CreateUpdateIssueMod
modalTitle,
primaryButtonText,
isProjectSelectionDisabled = false,
+ showActionItemsOnUpdate = false,
} = props;
const issueStoreType = useIssueStoreType();
@@ -318,6 +319,14 @@ export const CreateUpdateIssueModalBase = observer(function CreateUpdateIssueMod
type: TOAST_TYPE.SUCCESS,
title: t("success"),
message: t("issue_updated_successfully"),
+ actionItems:
+ showActionItemsOnUpdate && payload.project_id ? (
+
+ ) : undefined,
});
captureSuccess({
eventName: WORK_ITEM_TRACKER_EVENTS.update,
diff --git a/apps/web/core/components/issues/issue-modal/modal.tsx b/apps/web/core/components/issues/issue-modal/modal.tsx
index 1db1db78ffb..8c504da06d1 100644
--- a/apps/web/core/components/issues/issue-modal/modal.tsx
+++ b/apps/web/core/components/issues/issue-modal/modal.tsx
@@ -26,6 +26,7 @@ export interface IssuesModalProps {
isProjectSelectionDisabled?: boolean;
templateId?: string;
allowedProjectIds?: string[];
+ showActionItemsOnUpdate?: boolean;
}
export const CreateUpdateIssueModal = observer(function CreateUpdateIssueModal(props: IssuesModalProps) {
From 2ac5efe2f013ca0762ecde2b5ef7471976be93b1 Mon Sep 17 00:00:00 2001
From: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com>
Date: Fri, 12 Dec 2025 19:21:29 +0530
Subject: [PATCH 027/266] [WEB-5647] chore: list layout work item identifier
enhancements (#8326)
---
apps/api/plane/app/serializers/project.py | 8 ++++++++
.../issues/issue-layouts/list/block.tsx | 11 ++++++++---
.../components/issues/issue-layouts/utils.tsx | 15 +++++++++++++++
apps/web/core/store/project/project.store.ts | 11 +++++++++++
packages/types/src/project/projects.ts | 1 +
5 files changed, 43 insertions(+), 3 deletions(-)
diff --git a/apps/api/plane/app/serializers/project.py b/apps/api/plane/app/serializers/project.py
index 01569cbc96a..d7c458d40d1 100644
--- a/apps/api/plane/app/serializers/project.py
+++ b/apps/api/plane/app/serializers/project.py
@@ -3,6 +3,7 @@
# Module imports
from .base import BaseSerializer, DynamicBaseSerializer
+from django.db.models import Max
from plane.app.serializers.workspace import WorkspaceLiteSerializer
from plane.app.serializers.user import UserLiteSerializer, UserAdminLiteSerializer
from plane.db.models import (
@@ -12,6 +13,7 @@
ProjectIdentifier,
DeployBoard,
ProjectPublicMember,
+ IssueSequence
)
from plane.utils.content_validator import (
validate_html_content,
@@ -105,6 +107,7 @@ class ProjectListSerializer(DynamicBaseSerializer):
members = serializers.SerializerMethodField()
cover_image_url = serializers.CharField(read_only=True)
inbox_view = serializers.BooleanField(read_only=True, source="intake_view")
+ next_work_item_sequence = serializers.SerializerMethodField()
def get_members(self, obj):
project_members = getattr(obj, "members_list", None)
@@ -113,6 +116,11 @@ def get_members(self, obj):
return [member.member_id for member in project_members if member.is_active and not member.member.is_bot]
return []
+ def get_next_work_item_sequence(self, obj):
+ """Get the next sequence ID that will be assigned to a new issue"""
+ max_sequence = IssueSequence.objects.filter(project_id=obj.id).aggregate(max_seq=Max("sequence"))["max_seq"]
+ return (max_sequence + 1) if max_sequence else 1
+
class Meta:
model = Project
fields = "__all__"
diff --git a/apps/web/core/components/issues/issue-layouts/list/block.tsx b/apps/web/core/components/issues/issue-layouts/list/block.tsx
index 1b7cae0fd7e..b8352c51442 100644
--- a/apps/web/core/components/issues/issue-layouts/list/block.tsx
+++ b/apps/web/core/components/issues/issue-layouts/list/block.tsx
@@ -28,6 +28,7 @@ import { IssueIdentifier } from "@/plane-web/components/issues/issue-details/iss
import { IssueStats } from "@/plane-web/components/issues/issue-layouts/issue-stats";
// types
import { WithDisplayPropertiesHOC } from "../properties/with-display-properties-HOC";
+import { calculateIdentifierWidth } from "../utils";
import type { TRenderQuickActions } from "./list-view-types";
interface IssueBlockProps {
@@ -76,7 +77,7 @@ export const IssueBlock = observer(function IssueBlock(props: IssueBlockProps) {
const projectId = routerProjectId?.toString();
// hooks
const { sidebarCollapsed: isSidebarCollapsed } = useAppTheme();
- const { getProjectIdentifierById } = useProject();
+ const { getProjectIdentifierById, currentProjectNextSequenceId } = useProject();
const {
getIsIssuePeeked,
peekIssue,
@@ -150,8 +151,12 @@ export const IssueBlock = observer(function IssueBlock(props: IssueBlockProps) {
}
};
- //TODO: add better logic. This is to have a min width for ID/Key based on the length of project identifier
- const keyMinWidth = displayProperties?.key ? (projectIdentifier?.length ?? 0) * 7 : 0;
+ // Calculate width for: projectIdentifier + "-" + dynamic sequence number digits
+ // Use next_work_item_sequence from backend (static value from project endpoint)
+ const maxSequenceId = currentProjectNextSequenceId ?? 1;
+ const keyMinWidth = displayProperties?.key
+ ? calculateIdentifierWidth(projectIdentifier?.length ?? 0, maxSequenceId)
+ : 0;
const workItemLink = generateWorkItemLink({
workspaceSlug,
diff --git a/apps/web/core/components/issues/issue-layouts/utils.tsx b/apps/web/core/components/issues/issue-layouts/utils.tsx
index 524af27da27..564767f3b92 100644
--- a/apps/web/core/components/issues/issue-layouts/utils.tsx
+++ b/apps/web/core/components/issues/issue-layouts/utils.tsx
@@ -748,3 +748,18 @@ export const isFiltersApplied = (filters: IIssueFilterOptions): boolean =>
if (Array.isArray(value)) return value.length > 0;
return value !== undefined && value !== null && value !== "";
});
+
+/**
+ * Calculates the minimum width needed for issue identifiers in list layouts
+ * @param projectIdentifierLength - Length of the project identifier (e.g., "PROJ" = 4)
+ * @param maxSequenceId - Maximum sequence ID in the project (e.g., 1234)
+ * @returns Width in pixels needed to display the identifier
+ *
+ * @example
+ * // For "PROJ-1234"
+ * calculateIdentifierWidth(4, 1234) // Returns width for "PROJ" + "-" + "1234"
+ */
+export const calculateIdentifierWidth = (projectIdentifierLength: number, maxSequenceId: number): number => {
+ const sequenceDigits = Math.max(1, Math.floor(Math.log10(maxSequenceId)) + 1);
+ return projectIdentifierLength * 7 + 7 + sequenceDigits * 7; // project identifier chars + dash + sequence digits
+};
diff --git a/apps/web/core/store/project/project.store.ts b/apps/web/core/store/project/project.store.ts
index 3dce91b05a8..422fac379fa 100644
--- a/apps/web/core/store/project/project.store.ts
+++ b/apps/web/core/store/project/project.store.ts
@@ -30,6 +30,7 @@ export interface IProjectStore {
joinedProjectIds: string[];
favoriteProjectIds: string[];
currentProjectDetails: TProject | undefined;
+ currentProjectNextSequenceId: number | undefined;
// actions
getProjectById: (projectId: string | undefined | null) => TProject | undefined;
getPartialProjectById: (projectId: string | undefined | null) => TPartialProject | undefined;
@@ -107,6 +108,7 @@ export class ProjectStore implements IProjectStore {
currentProjectDetails: computed,
joinedProjectIds: computed,
favoriteProjectIds: computed,
+ currentProjectNextSequenceId: computed,
// helper actions
processProjectAfterCreation: action,
// fetch actions
@@ -216,6 +218,15 @@ export class ProjectStore implements IProjectStore {
return this.projectMap?.[this.rootStore.router.projectId];
}
+ /**
+ * Returns the next sequence ID for the current project
+ * Used for calculating identifier width in list layouts
+ */
+ get currentProjectNextSequenceId() {
+ if (!this.rootStore.router.projectId) return undefined;
+ return this.currentProjectDetails?.next_work_item_sequence;
+ }
+
/**
* Returns joined project IDs belong to the current workspace
*/
diff --git a/packages/types/src/project/projects.ts b/packages/types/src/project/projects.ts
index aa4d1bcba0d..9da12b57033 100644
--- a/packages/types/src/project/projects.ts
+++ b/packages/types/src/project/projects.ts
@@ -51,6 +51,7 @@ export interface IProject extends IPartialProject {
is_favorite?: boolean;
members?: string[];
timezone?: string;
+ next_work_item_sequence?: number;
}
export type TProjectAnalyticsCountParams = {
From 0263f0797714a652b796030d26e04d3e9c94c77f Mon Sep 17 00:00:00 2001
From: sriramveeraghanta
Date: Fri, 12 Dec 2025 19:41:20 +0530
Subject: [PATCH 028/266] chore: file formating
---
apps/web/core/components/issues/issue-layouts/utils.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apps/web/core/components/issues/issue-layouts/utils.tsx b/apps/web/core/components/issues/issue-layouts/utils.tsx
index 564767f3b92..d3cca81dd74 100644
--- a/apps/web/core/components/issues/issue-layouts/utils.tsx
+++ b/apps/web/core/components/issues/issue-layouts/utils.tsx
@@ -754,7 +754,7 @@ export const isFiltersApplied = (filters: IIssueFilterOptions): boolean =>
* @param projectIdentifierLength - Length of the project identifier (e.g., "PROJ" = 4)
* @param maxSequenceId - Maximum sequence ID in the project (e.g., 1234)
* @returns Width in pixels needed to display the identifier
- *
+ *
* @example
* // For "PROJ-1234"
* calculateIdentifierWidth(4, 1234) // Returns width for "PROJ" + "-" + "1234"
From d86418aad8edd790ca814e1acfcfe7bf85f7e0a4 Mon Sep 17 00:00:00 2001
From: b-saikrishnakanth <130811169+b-saikrishnakanth@users.noreply.github.com>
Date: Fri, 12 Dec 2025 20:11:35 +0530
Subject: [PATCH 029/266] [WEB-5650] feat: Enable Gitea OAuth configuration
(#8325)
* feat: implement OAuth configuration helper and integrate into auth forms
* fix: ensure OAuth providers are disabled by default if not configured
---
apps/web/ce/helpers/oauth-config.tsx | 77 +++++++++++++++++++
.../account/auth-forms/auth-root.tsx | 50 ++----------
2 files changed, 82 insertions(+), 45 deletions(-)
create mode 100644 apps/web/ce/helpers/oauth-config.tsx
diff --git a/apps/web/ce/helpers/oauth-config.tsx b/apps/web/ce/helpers/oauth-config.tsx
new file mode 100644
index 00000000000..1985fbf73ea
--- /dev/null
+++ b/apps/web/ce/helpers/oauth-config.tsx
@@ -0,0 +1,77 @@
+// plane imports
+import { API_BASE_URL } from "@plane/constants";
+import type { TOAuthOption } from "@plane/ui";
+// assets
+import GithubLightLogo from "@/app/assets/logos/github-black.png?url";
+import GithubDarkLogo from "@/app/assets/logos/github-dark.svg?url";
+import GitlabLogo from "@/app/assets/logos/gitlab-logo.svg?url";
+import GiteaLogo from "@/app/assets/logos/gitea-logo.svg?url";
+import GoogleLogo from "@/app/assets/logos/google-logo.svg?url";
+import type { IInstanceConfig } from "@plane/types";
+
+export type OAuthConfigParams = {
+ OauthButtonContent: "Sign up" | "Sign in";
+ next_path: string | null;
+ config: IInstanceConfig | undefined;
+ resolvedTheme: string | undefined;
+};
+
+export const isOAuthEnabled = (config: IInstanceConfig | undefined) =>
+ (config &&
+ (config?.is_google_enabled ||
+ config?.is_github_enabled ||
+ config?.is_gitlab_enabled ||
+ config?.is_gitea_enabled)) ||
+ false;
+
+export function OAUTH_CONFIG({
+ OauthButtonContent,
+ next_path,
+ config,
+ resolvedTheme,
+}: OAuthConfigParams): TOAuthOption[] {
+ return [
+ {
+ id: "google",
+ text: `${OauthButtonContent} with Google`,
+ icon:
,
+ onClick: () => {
+ window.location.assign(`${API_BASE_URL}/auth/google/${next_path ? `?next_path=${next_path}` : ``}`);
+ },
+ enabled: config?.is_google_enabled || false,
+ },
+ {
+ id: "github",
+ text: `${OauthButtonContent} with GitHub`,
+ icon: (
+
+ ),
+ onClick: () => {
+ window.location.assign(`${API_BASE_URL}/auth/github/${next_path ? `?next_path=${next_path}` : ``}`);
+ },
+ enabled: config?.is_github_enabled || false,
+ },
+ {
+ id: "gitlab",
+ text: `${OauthButtonContent} with GitLab`,
+ icon:
,
+ onClick: () => {
+ window.location.assign(`${API_BASE_URL}/auth/gitlab/${next_path ? `?next_path=${next_path}` : ``}`);
+ },
+ enabled: config?.is_gitlab_enabled || false,
+ },
+ {
+ id: "gitea",
+ text: `${OauthButtonContent} with Gitea`,
+ icon:
,
+ onClick: () => {
+ window.location.assign(`${API_BASE_URL}/auth/gitea/${next_path ? `?next_path=${next_path}` : ``}`);
+ },
+ enabled: config?.is_gitea_enabled || false,
+ },
+ ];
+}
diff --git a/apps/web/core/components/account/auth-forms/auth-root.tsx b/apps/web/core/components/account/auth-forms/auth-root.tsx
index bb7600310b7..907ed6cbb4e 100644
--- a/apps/web/core/components/account/auth-forms/auth-root.tsx
+++ b/apps/web/core/components/account/auth-forms/auth-root.tsx
@@ -1,16 +1,9 @@
-import type { FC } from "react";
-import React, { useEffect, useState } from "react";
+import { useEffect, useState } from "react";
import { observer } from "mobx-react";
import { useSearchParams } from "next/navigation";
import { useTheme } from "next-themes";
// plane imports
-import { API_BASE_URL } from "@plane/constants";
import { OAuthOptions } from "@plane/ui";
-// assets
-import GithubLightLogo from "@/app/assets/logos/github-black.png?url";
-import GithubDarkLogo from "@/app/assets/logos/github-dark.svg?url";
-import GitlabLogo from "@/app/assets/logos/gitlab-logo.svg?url";
-import GoogleLogo from "@/app/assets/logos/google-logo.svg?url";
// helpers
import type { TAuthErrorInfo } from "@/helpers/authentication.helper";
import {
@@ -27,6 +20,8 @@ import { TermsAndConditions } from "../terms-and-conditions";
import { AuthBanner } from "./auth-banner";
import { AuthHeader } from "./auth-header";
import { AuthFormRoot } from "./form-root";
+// plane web imports
+import { OAUTH_CONFIG, isOAuthEnabled as isOAuthEnabledHelper } from "@/plane-web/helpers/oauth-config";
type TAuthRoot = {
authMode: EAuthModes;
@@ -54,8 +49,7 @@ export const AuthRoot = observer(function AuthRoot(props: TAuthRoot) {
const { config } = useInstance();
// derived values
- const isOAuthEnabled =
- (config && (config?.is_google_enabled || config?.is_github_enabled || config?.is_gitlab_enabled)) || false;
+ const isOAuthEnabled = isOAuthEnabledHelper(config);
useEffect(() => {
if (!authMode && currentAuthMode) setAuthMode(currentAuthMode);
@@ -107,41 +101,7 @@ export const AuthRoot = observer(function AuthRoot(props: TAuthRoot) {
const OauthButtonContent = authMode === EAuthModes.SIGN_UP ? "Sign up" : "Sign in";
- const OAuthConfig = [
- {
- id: "google",
- text: `${OauthButtonContent} with Google`,
- icon:
,
- onClick: () => {
- window.location.assign(`${API_BASE_URL}/auth/google/${next_path ? `?next_path=${next_path}` : ``}`);
- },
- enabled: config?.is_google_enabled,
- },
- {
- id: "github",
- text: `${OauthButtonContent} with GitHub`,
- icon: (
-
- ),
- onClick: () => {
- window.location.assign(`${API_BASE_URL}/auth/github/${next_path ? `?next_path=${next_path}` : ``}`);
- },
- enabled: config?.is_github_enabled,
- },
- {
- id: "gitlab",
- text: `${OauthButtonContent} with GitLab`,
- icon:
,
- onClick: () => {
- window.location.assign(`${API_BASE_URL}/auth/gitlab/${next_path ? `?next_path=${next_path}` : ``}`);
- },
- enabled: config?.is_gitlab_enabled,
- },
- ];
+ const OAuthConfig = OAUTH_CONFIG({ OauthButtonContent, next_path, config, resolvedTheme });
return (
From 22339b9786e98e12be803ca33eeaafe56fb5134a Mon Sep 17 00:00:00 2001
From: Aaryan Khandelwal <65252264+aaryan610@users.noreply.github.com>
Date: Fri, 12 Dec 2025 20:50:14 +0530
Subject: [PATCH 030/266] [WEB-5602] feat: new design system (#8220)
* chore: init tailwind v4
* chore: update all configs
* chore: add source to parse monorepo packages
* chore: combine all css files
* feat: added extended colors
* chore: update typography
* chore: update extended color var names
* refactor: remove initial spacing variable and update dark mode selector
* chore: update css files
* chore: update animations
* chore: remove spacing tokens
* fix: external css files
* chore: update tailwind-merge version
* chore: update font family
* chore: added brief agents.md and story for new design system
* chore: enhance design system documentation with rare exceptions for visual separation
* chore: add fontsource package for typography
* chore: material symbols font added
* chore: update shadow default
* chore: add stroke and outline theme vars
* chore: update ring and fill colors
* chore: overwrite tailwind typography tokens
* chore: add high contrast mode tokens
* chore: update scrollbar colors
* chore: backward compatibility for buttons and placeholders
* chore: add priority colors
* chore: update urgent priority color
* chore: update plan colors
* chore: add missing utility class
* chore: update height and padding classes
* chore: update label colors
* chore: add missing utlity
* chore: add typography plugin to space app
* chore: replace existing classNames with new design system tokens #8244 (#8278)
* chore: update border colors
* chore: update all borders
* chore: update text colors
* chore: update css variables
* chore: update font sizes and weights
* chore: update bg colors
* chore: sync changes
* fix: uncomment spacing-1200 variable in variables.css
* chore: update primary colors
* refactor: updated border to border-subtle
* refactor: update various components and improve UI consistency across the application
* updated classnames
* updated classnames
* refactor: update color-related class names to use new design system variables for consistency
* chore: default automations
* chore: update text sizes
* chore: home and power k
* chore: home and power k
* chore: replace ui package button components
* chore: update text sizes
* chore: updated issue identifier (#8275)
* refactor: top navigation and sidebar design token (#8276)
* chore: update all button components (#8277)
* chore: new button component
* chore: update existing buttons
* chore: overwrite tailwind typography tokens
* fix: twMerge config + fixed cn instances
* refactor: toast design token updated (#8279)
* chore: update existing buttons
* chore: tooltip design token updatged (#8280)
* chore: moved cn utility to propel (#8281)
* chore: update space app UI (#8285)
* chore; update space app filters component
* fix: button whitespace wrap
* chore: space app votes
* chore: update dropdown components
* refactor: auth, onboarding, sidebar, and common component design token migration (#8291)
* chore: checkbox component design token updated
* chore: indicator and oauth component design token updated
* chore: sidebar design token updated
* chore: auth and onboarding design token updated
* chore: update divider color
* style: update background colors and hover effects across list components
* fix: tailwind merge
* refactor: toggle switch design token migration and header utility classname added (#8295)
* chore: toggle component design token updated
* chore: h-header utility class added
* chore: updated color tokens for work item detail page (#8296)
* chore: update react-day-picker UI
* refactor: update button sizes and styles in filters components
* refactor: breadcrumbs design token updated (#8297)
* chore: update priority icon colors
* refactor: updated layout variables
* chore: update plan card primary CTA
* Chore update editor design system (#8299)
* refactor: update styles for callout, color selector, logo selector, and image uploader
* refactor:fix image
* chore: update settings UI
* chore: updated notifications color and size tokens (#8302)
* chore: update sm button border radius
* fix: logo renderer
* chore: icon button component
* chore: remove deprecated classes
* chore: remove deprecated classes
* chore: update editor list spacing
* fix: icon button size
* chore: improvements (#8309)
* chore: update cycles and modules pages
* refactor: update background styles across various components to use new design system colors
* fix: button type errors
* chore: update modals design system (#8310)
* refactor: callout bg
* refactor: code bg
* refactor: modal size and variant
---------
Co-authored-by: Aaryan Khandelwal
* chore: update next-themes
* design: update billing and plans component styles and remove unused utility functions (#8313)
* refactor: empty state design token migration and improvements (#8315)
* fix: profile page
* refactor: tabs design token updated (#8316)
* chore: updated buttons and tokens for work items (#8317)
* fix: adjust trial button spacing in checkout modal
* chore: update add button hover state
* fix: type error (#8318)
* fix: type error
* chore: code refactor
* refactor: update button sizes and background styles in rich filters components
* refactor: update editor bg
* refactor: enhance Gantt chart sidebar functionality and styling
- Removed unused prop from .
- Updated to include new props for better block management and scrolling behavior.
- Improved auto-scroll functionality for Gantt chart items.
- Adjusted styles in component for consistent design.
* regression: gantt design
* chore: new badge component
* fix: favorite star
* chore: update backgroung, typography and button sizes across workspace settings general and members pages
* fix: header button sizes
* fix: emoji icon logo (#8323)
* more fixes
* chore: update settings sidebar
* refactor: avatar component
* chore: updated work item detail sidebar (#8327)
* refactor: update link preview
* fix: work item property dropdowns
* fix: dropdown buttons border radius
* chore: update power k translation
* chore: updated profile activity design (#8328)
* chore: update settings pages
* chore: update work item sidebar alignments (#8330)
* refactor: admin design system
* chore: update page header
---------
Co-authored-by: Jayash Tripathy <76092296+JayashTripathy@users.noreply.github.com>
Co-authored-by: VipinDevelops
Co-authored-by: Vamsi Krishna <46787868+vamsikrishnamathala@users.noreply.github.com>
Co-authored-by: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com>
Co-authored-by: gakshita
Co-authored-by: Palanikannan M
Co-authored-by: Prateek Shourya
Co-authored-by: b-saikrishnakanth
Co-authored-by: M. Palanikannan <73993394+Palanikannan1437@users.noreply.github.com>
* fix: formatting
* reexport types
* fix: lint error
---------
Co-authored-by: Jayash Tripathy <76092296+JayashTripathy@users.noreply.github.com>
Co-authored-by: VipinDevelops
Co-authored-by: Vamsi Krishna <46787868+vamsikrishnamathala@users.noreply.github.com>
Co-authored-by: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com>
Co-authored-by: gakshita
Co-authored-by: Palanikannan M
Co-authored-by: Prateek Shourya
Co-authored-by: b-saikrishnakanth
Co-authored-by: M. Palanikannan <73993394+Palanikannan1437@users.noreply.github.com>
---
.gitignore | 2 -
AGENTS.md | 24 +
apps/admin/app/(all)/(dashboard)/ai/form.tsx | 14 +-
apps/admin/app/(all)/(dashboard)/ai/page.tsx | 6 +-
.../(dashboard)/authentication/gitea/form.tsx | 29 +-
.../(dashboard)/authentication/gitea/page.tsx | 2 +-
.../authentication/github/form.tsx | 32 +-
.../authentication/github/page.tsx | 2 +-
.../authentication/gitlab/form.tsx | 26 +-
.../authentication/gitlab/page.tsx | 2 +-
.../authentication/google/form.tsx | 32 +-
.../authentication/google/page.tsx | 2 +-
.../(all)/(dashboard)/authentication/page.tsx | 14 +-
.../(dashboard)/email/email-config-form.tsx | 14 +-
.../app/(all)/(dashboard)/email/page.tsx | 10 +-
.../(dashboard)/email/test-email-modal.tsx | 16 +-
.../app/(all)/(dashboard)/general/form.tsx | 32 +-
.../(all)/(dashboard)/general/intercom.tsx | 10 +-
.../app/(all)/(dashboard)/general/page.tsx | 6 +-
apps/admin/app/(all)/(dashboard)/header.tsx | 8 +-
.../app/(all)/(dashboard)/image/form.tsx | 4 +-
.../app/(all)/(dashboard)/image/page.tsx | 6 +-
apps/admin/app/(all)/(dashboard)/layout.tsx | 4 +-
.../(all)/(dashboard)/sidebar-dropdown.tsx | 20 +-
.../(dashboard)/sidebar-help-section.tsx | 24 +-
.../app/(all)/(dashboard)/sidebar-menu.tsx | 12 +-
apps/admin/app/(all)/(dashboard)/sidebar.tsx | 2 +-
.../(dashboard)/workspace/create/form.tsx | 30 +-
.../(dashboard)/workspace/create/page.tsx | 6 +-
.../app/(all)/(dashboard)/workspace/page.tsx | 26 +-
apps/admin/app/(all)/(home)/auth-banner.tsx | 8 +-
apps/admin/app/(all)/(home)/auth-header.tsx | 2 +-
apps/admin/app/(all)/(home)/auth-helpers.tsx | 4 +-
apps/admin/app/(all)/(home)/layout.tsx | 2 +-
apps/admin/app/(all)/(home)/sign-in-form.tsx | 14 +-
apps/admin/app/components/404.tsx | 8 +-
apps/admin/app/root.tsx | 6 +-
.../authentication/authentication-modes.tsx | 8 +-
.../ce/components/common/upgrade-button.tsx | 2 +-
.../authentication-method-card.tsx | 18 +-
.../authentication/gitea-config.tsx | 13 +-
.../authentication/github-config.tsx | 9 +-
.../authentication/gitlab-config.tsx | 9 +-
.../authentication/google-config.tsx | 9 +-
apps/admin/core/components/common/banner.tsx | 2 +-
.../components/common/breadcrumb-link.tsx | 11 +-
.../core/components/common/code-block.tsx | 4 +-
.../common/confirm-discard-modal.tsx | 12 +-
.../components/common/controller-input.tsx | 8 +-
.../core/components/common/copy-field.tsx | 9 +-
.../core/components/common/empty-state.tsx | 5 +-
.../core/components/instance/failure.tsx | 6 +-
.../core/components/instance/form-header.tsx | 4 +-
.../instance/instance-not-ready.tsx | 8 +-
.../core/components/instance/setup-form.tsx | 44 +-
apps/admin/core/components/new-user-popup.tsx | 10 +-
.../core/components/workspace/list-item.tsx | 30 +-
apps/admin/postcss.config.cjs | 1 -
apps/admin/postcss.config.js | 3 +
apps/admin/styles/globals.css | 404 +-----
apps/admin/tailwind.config.cjs | 5 -
apps/api/plane/seeds/data/issues.json | 14 +-
apps/api/plane/seeds/data/pages.json | 56 +-
apps/space/app/error.tsx | 8 +-
apps/space/app/issues/[anchor]/layout.tsx | 4 +-
apps/space/app/not-found.tsx | 6 +-
.../account/auth-forms/auth-banner.tsx | 8 +-
.../account/auth-forms/auth-header.tsx | 4 +-
.../components/account/auth-forms/email.tsx | 14 +-
.../account/auth-forms/password.tsx | 30 +-
.../account/auth-forms/unique-code.tsx | 20 +-
.../account/terms-and-conditions.tsx | 6 +-
.../components/account/user-logged-in.tsx | 10 +-
.../core/components/common/powered-by.tsx | 6 +-
.../core/components/common/project-logo.tsx | 4 +-
.../editor/embeds/mentions/user.tsx | 11 +-
.../components/editor/lite-text-editor.tsx | 2 +-
apps/space/core/components/editor/toolbar.tsx | 17 +-
.../instance/instance-failure-view.tsx | 6 +-
.../filters/applied-filters/filters-list.tsx | 8 +-
.../issues/filters/applied-filters/label.tsx | 4 +-
.../filters/applied-filters/priority.tsx | 28 +-
.../issues/filters/applied-filters/root.tsx | 2 +-
.../issues/filters/applied-filters/state.tsx | 4 +-
.../issues/filters/helpers/dropdown.tsx | 6 +-
.../issues/filters/helpers/filter-header.tsx | 6 +-
.../issues/filters/helpers/filter-option.tsx | 12 +-
.../core/components/issues/filters/labels.tsx | 4 +-
.../components/issues/filters/priority.tsx | 2 +-
.../core/components/issues/filters/root.tsx | 2 +-
.../components/issues/filters/selection.tsx | 12 +-
.../core/components/issues/filters/state.tsx | 4 +-
.../components/issues/issue-layouts/error.tsx | 6 +-
.../issues/issue-layouts/issue-layout-HOC.tsx | 4 +-
.../issue-layouts/kanban/base-kanban-root.tsx | 4 +-
.../issue-layouts/kanban/block-reactions.tsx | 4 +-
.../issues/issue-layouts/kanban/block.tsx | 14 +-
.../issue-layouts/kanban/blocks-list.tsx | 10 +-
.../issues/issue-layouts/kanban/default.tsx | 78 +-
.../kanban/headers/group-by-card.tsx | 13 +-
.../kanban/headers/sub-group-by-card.tsx | 12 +-
.../issue-layouts/kanban/kanban-group.tsx | 5 +-
.../issues/issue-layouts/kanban/swimlanes.tsx | 4 +-
.../issue-layouts/list/base-list-root.tsx | 2 +-
.../issues/issue-layouts/list/block.tsx | 14 +-
.../issues/issue-layouts/list/blocks-list.tsx | 10 +-
.../issues/issue-layouts/list/default.tsx | 3 +-
.../list/headers/group-by-card.tsx | 11 +-
.../issues/issue-layouts/list/list-group.tsx | 15 +-
.../properties/all-properties.tsx | 14 +-
.../issues/issue-layouts/properties/cycle.tsx | 6 +-
.../issue-layouts/properties/due-date.tsx | 4 +-
.../issue-layouts/properties/labels.tsx | 12 +-
.../issue-layouts/properties/member.tsx | 6 +-
.../issue-layouts/properties/modules.tsx | 14 +-
.../issue-layouts/properties/priority.tsx | 16 +-
.../issues/issue-layouts/properties/state.tsx | 6 +-
.../components/issues/issue-layouts/root.tsx | 8 +-
.../components/issues/navbar/controls.tsx | 6 +-
.../issues/navbar/layout-selection.tsx | 8 +-
.../core/components/issues/navbar/root.tsx | 15 +-
.../core/components/issues/navbar/theme.tsx | 10 +-
.../components/issues/navbar/user-avatar.tsx | 15 +-
.../comment/comment-detail-card.tsx | 36 +-
.../peek-overview/full-screen-peek-view.tsx | 4 +-
.../issues/peek-overview/header.tsx | 34 +-
.../issues/peek-overview/issue-activity.tsx | 6 +-
.../issues/peek-overview/issue-details.tsx | 4 +-
.../issues/peek-overview/issue-properties.tsx | 26 +-
.../issues/peek-overview/layout.tsx | 8 +-
.../issues/peek-overview/side-peek-view.tsx | 6 +-
.../issues/reactions/issue-vote-reactions.tsx | 18 +-
apps/space/core/components/ui/icon.tsx | 2 +-
apps/space/core/components/ui/not-found.tsx | 6 +-
apps/space/core/components/views/header.tsx | 2 +-
apps/space/core/lib/instance-provider.tsx | 2 +-
apps/space/helpers/emoji.helper.tsx | 2 +-
apps/space/package.json | 1 +
apps/space/postcss.config.cjs | 1 -
apps/space/postcss.config.js | 3 +
apps/space/styles/globals.css | 536 +-------
apps/space/tailwind.config.cjs | 1 -
.../(projects)/active-cycles/header.tsx | 2 +-
.../(projects)/analytics/[tabId]/header.tsx | 2 +-
.../(projects)/analytics/[tabId]/page.tsx | 4 +-
.../(projects)/browse/[workItem]/header.tsx | 4 +-
.../browse/[workItem]/work-item-header.tsx | 2 +-
.../(projects)/drafts/header.tsx | 4 +-
.../(projects)/extended-project-sidebar.tsx | 10 +-
.../(projects)/extended-sidebar-wrapper.tsx | 2 +-
.../[workspaceSlug]/(projects)/header.tsx | 13 +-
.../[workspaceSlug]/(projects)/layout.tsx | 4 +-
.../profile/[userId]/activity/page.tsx | 6 +-
.../(projects)/profile/[userId]/header.tsx | 40 +-
.../(projects)/profile/[userId]/layout.tsx | 2 +-
.../profile/[userId]/mobile-header.tsx | 18 +-
.../(projects)/profile/[userId]/navbar.tsx | 19 +-
.../(detail)/[projectId]/archives/header.tsx | 6 +-
.../(detail)/[archivedIssueId]/page.tsx | 7 +-
.../archives/issues/(detail)/header.tsx | 4 +-
.../cycles/(detail)/[cycleId]/page.tsx | 6 +-
.../[projectId]/cycles/(detail)/header.tsx | 31 +-
.../cycles/(detail)/mobile-header.tsx | 18 +-
.../[projectId]/cycles/(list)/header.tsx | 4 +-
.../cycles/(list)/mobile-header.tsx | 8 +-
.../issues/(list)/mobile-header.tsx | 10 +-
.../projects/(detail)/[projectId]/layout.tsx | 4 +-
.../modules/(detail)/[moduleId]/page.tsx | 6 +-
.../[projectId]/modules/(detail)/header.tsx | 34 +-
.../modules/(detail)/mobile-header.tsx | 18 +-
.../[projectId]/modules/(list)/header.tsx | 4 +-
.../modules/(list)/mobile-header.tsx | 10 +-
.../pages/(detail)/[pageId]/page.tsx | 6 +-
.../[projectId]/pages/(detail)/header.tsx | 2 +-
.../[projectId]/pages/(list)/header.tsx | 8 +-
.../views/(detail)/[viewId]/header.tsx | 13 +-
.../[projectId]/views/(list)/header.tsx | 4 +-
.../views/(list)/mobile-header.tsx | 10 +-
.../(projects)/star-us-link.tsx | 4 +-
.../(projects)/stickies/header.tsx | 5 +-
.../(projects)/workspace-views/header.tsx | 9 +-
.../(projects)/workspace-views/page.tsx | 6 +-
.../[workspaceSlug]/(settings)/layout.tsx | 8 +-
.../settings/(workspace)/members/page.tsx | 10 +-
.../(workspace)/mobile-header-tabs.tsx | 6 +-
.../(workspace)/webhooks/[webhookId]/page.tsx | 2 +-
.../settings/account/activity/page.tsx | 9 +-
.../settings/account/security/page.tsx | 12 +-
.../(settings)/settings/account/sidebar.tsx | 6 +-
.../(settings)/settings/projects/page.tsx | 7 +-
apps/web/app/(all)/create-workspace/page.tsx | 18 +-
apps/web/app/(all)/invitations/page.tsx | 30 +-
apps/web/app/(all)/layout.tsx | 6 -
apps/web/app/(all)/onboarding/page.tsx | 4 +-
apps/web/app/(all)/profile/activity/page.tsx | 4 +-
.../web/app/(all)/profile/appearance/page.tsx | 4 +-
apps/web/app/(all)/profile/layout.tsx | 4 +-
apps/web/app/(all)/profile/security/page.tsx | 12 +-
apps/web/app/(all)/profile/sidebar.tsx | 32 +-
.../app/(all)/workspace-invitations/page.tsx | 4 +-
apps/web/app/error/dev.tsx | 52 +-
apps/web/app/error/prod.tsx | 12 +-
apps/web/app/layout.tsx | 9 +-
apps/web/app/not-found.tsx | 8 +-
apps/web/app/root.tsx | 7 +-
.../workspace-active-cycles-upgrade.tsx | 12 +-
.../ce/components/command-palette/helpers.tsx | 10 +-
.../power-k/search/no-results-command.tsx | 2 +-
.../ce/components/comments/comment-block.tsx | 10 +-
.../components/cycles/active-cycle/root.tsx | 8 +-
.../estimates/estimate-list-item-buttons.tsx | 2 +-
.../gantt-chart/blocks/block-row-list.tsx | 1 -
.../global/product-updates/header.tsx | 4 +-
.../instance/maintenance-message.tsx | 6 +-
apps/web/ce/components/issues/header.tsx | 11 +-
.../issues/issue-details/issue-creator.tsx | 4 +-
.../issues/issue-details/issue-identifier.tsx | 87 +-
.../{sidebar.tsx => sidebar}/date-alert.tsx | 0
.../license/modal/upgrade-modal.tsx | 7 +-
.../navigations/top-navigation-root.tsx | 4 +-
.../ce/components/onboarding/tour/root.tsx | 26 +-
.../ce/components/onboarding/tour/sidebar.tsx | 10 +-
.../pages/editor/ai/ask-pi-menu.tsx | 24 +-
.../ce/components/pages/editor/ai/menu.tsx | 32 +-
.../editor/embed/issue-embed-upgrade-card.tsx | 6 +-
.../components/pages/header/lock-control.tsx | 10 +-
.../tab-panels/empty-states/assets.tsx | 10 +-
.../tab-panels/empty-states/outline.tsx | 10 +-
.../components/projects/create/attributes.tsx | 4 +-
.../ce/components/projects/mobile-header.tsx | 6 +-
.../projects/settings/intake/header.tsx | 9 +-
.../projects/settings/useProjectColumns.tsx | 2 +-
apps/web/ce/components/relations/index.tsx | 12 +-
.../rich-filters/filter-value-input/root.tsx | 2 +-
.../ce/components/workflow/state-option.tsx | 3 +-
.../notification-card/root.tsx | 8 +-
.../billing/comparison/frequency-toggle.tsx | 39 +-
.../billing/comparison/plan-detail.tsx | 39 +-
.../ce/components/workspace/billing/root.tsx | 18 +-
.../components/workspace/content-wrapper.tsx | 4 +-
.../workspace/delete-workspace-section.tsx | 10 +-
.../ce/components/workspace/edition-badge.tsx | 7 +-
.../workspace/settings/useMemberColumns.tsx | 8 +-
.../sidebar/extended-sidebar-item.tsx | 12 +-
.../ce/components/workspace/upgrade-badge.tsx | 6 +-
.../constants/project/settings/features.tsx | 10 +-
apps/web/ce/types/pages/pane-extensions.ts | 19 +-
.../account/auth-forms/auth-banner.tsx | 8 +-
.../account/auth-forms/auth-header.tsx | 6 +-
.../account/auth-forms/common/header.tsx | 4 +-
.../components/account/auth-forms/email.tsx | 12 +-
.../auth-forms/forgot-password-popover.tsx | 8 +-
.../account/auth-forms/forgot-password.tsx | 10 +-
.../account/auth-forms/password.tsx | 36 +-
.../account/auth-forms/reset-password.tsx | 22 +-
.../account/auth-forms/set-password.tsx | 22 +-
.../account/auth-forms/unique-code.tsx | 20 +-
.../account/deactivate-account-modal.tsx | 12 +-
.../account/terms-and-conditions.tsx | 6 +-
.../analytics/analytics-section-wrapper.tsx | 4 +-
.../analytics/analytics-wrapper.tsx | 2 +-
.../core/components/analytics/empty-state.tsx | 6 +-
.../components/analytics/insight-card.tsx | 4 +-
.../analytics/insight-table/data-table.tsx | 12 +-
.../analytics/insight-table/root.tsx | 2 +-
.../overview/active-project-item.tsx | 6 +-
.../analytics/overview/project-insights.tsx | 12 +-
.../analytics/select/analytics-params.tsx | 9 +-
.../core/components/analytics/trend-piece.tsx | 8 +-
.../work-items/created-vs-resolved.tsx | 2 +-
.../analytics/work-items/modal/header.tsx | 6 +-
.../analytics/work-items/modal/index.tsx | 2 +-
.../analytics/work-items/priority-chart.tsx | 4 +-
.../work-items/workitems-insight-table.tsx | 8 +-
.../core/components/api-token/empty-state.tsx | 6 +-
.../core/components/api-token/modal/form.tsx | 22 +-
.../modal/generated-token-details.tsx | 12 +-
.../components/api-token/token-list-item.tsx | 12 +-
.../components/archives/archive-tabs-list.tsx | 6 +-
.../core/components/auth-screens/footer.tsx | 8 +-
.../core/components/auth-screens/header.tsx | 8 +-
.../auth-screens/not-authorized-view.tsx | 4 +-
.../project/project-access-restriction.tsx | 6 +-
.../auth-screens/workspace/not-a-member.tsx | 6 +-
.../automation/auto-archive-automation.tsx | 18 +-
.../automation/auto-close-automation.tsx | 20 +-
.../automation/select-month-modal.tsx | 22 +-
.../components/base-layouts/gantt/sidebar.tsx | 15 +-
.../base-layouts/kanban/group-header.tsx | 4 +-
.../components/base-layouts/kanban/group.tsx | 12 +-
.../base-layouts/layout-switcher.tsx | 10 +-
.../base-layouts/list/group-header.tsx | 4 +-
.../components/base-layouts/list/group.tsx | 8 +-
.../components/base-layouts/list/layout.tsx | 2 +-
.../core/components/comments/card/display.tsx | 4 +-
.../components/comments/card/edit-form.tsx | 8 +-
.../components/comments/comment-create.tsx | 2 +-
.../components/comments/quick-actions.tsx | 6 +-
.../core/components/common/access-field.tsx | 11 +-
.../common/activity/activity-block.tsx | 14 +-
.../components/common/activity/helper.tsx | 108 +-
.../core/components/common/activity/user.tsx | 4 +-
.../common/applied-filters/date.tsx | 4 +-
.../common/applied-filters/members.tsx | 4 +-
.../components/common/breadcrumb-link.tsx | 2 +-
.../web/core/components/common/count-chip.tsx | 2 +-
.../core/components/common/empty-state.tsx | 4 +-
.../components/common/filters/created-at.tsx | 2 +-
.../components/common/filters/created-by.tsx | 4 +-
.../common/latest-feature-block.tsx | 12 +-
.../layout/sidebar/property-list-item.tsx | 25 +
.../components/common/new-empty-state.tsx | 28 +-
.../components/common/page-access-icon.tsx | 6 +-
.../core/components/common/switcher-label.tsx | 4 +-
apps/web/core/components/core/activity.tsx | 112 +-
apps/web/core/components/core/app-header.tsx | 7 +-
.../components/core/content-overflow-HOC.tsx | 4 +-
.../description-versions/dropdown-item.tsx | 2 +-
.../core/description-versions/dropdown.tsx | 6 +-
.../core/description-versions/modal.tsx | 49 +-
.../core/filters/date-filter-modal.tsx | 18 +-
.../core/filters/date-filter-select.tsx | 2 +-
.../components/core/image-picker-popover.tsx | 34 +-
.../core/components/core/list/list-item.tsx | 5 +-
.../modals/bulk-delete-issues-modal-item.tsx | 4 +-
.../core/modals/bulk-delete-issues-modal.tsx | 26 +-
.../core/modals/change-email-modal.tsx | 26 +-
.../modals/existing-issues-list-modal.tsx | 47 +-
.../core/modals/gpt-assistant-popover.tsx | 14 +-
.../core/modals/user-image-upload-modal.tsx | 24 +-
.../modals/workspace-image-upload-modal.tsx | 30 +-
.../components/core/render-if-visible-HOC.tsx | 2 +-
.../core/sidebar/progress-stats/assignee.tsx | 6 +-
.../core/sidebar/progress-stats/label.tsx | 8 +-
.../sidebar/progress-stats/state_group.tsx | 2 +-
.../sidebar/sidebar-menu-hamburger-toggle.tsx | 4 +-
.../core/sidebar/single-progress-stats.tsx | 6 +-
.../core/theme/color-picker-input.tsx | 8 +-
.../core/theme/custom-theme-selector.tsx | 32 +-
.../components/core/theme/theme-switch.tsx | 2 +-
.../cycles/active-cycle/cycle-stats.tsx | 50 +-
.../cycles/active-cycle/productivity.tsx | 10 +-
.../cycles/active-cycle/progress.tsx | 16 +-
.../analytics-sidebar/issue-progress.tsx | 14 +-
.../analytics-sidebar/progress-stats.tsx | 14 +-
.../analytics-sidebar/sidebar-details.tsx | 30 +-
.../analytics-sidebar/sidebar-header.tsx | 12 +-
.../cycles/applied-filters/date.tsx | 4 +-
.../cycles/applied-filters/root.tsx | 6 +-
.../cycles/applied-filters/status.tsx | 5 +-
.../cycles/archived-cycles/header.tsx | 10 +-
.../cycles/archived-cycles/modal.tsx | 12 +-
.../cycles/archived-cycles/root.tsx | 2 +-
.../cycles/archived-cycles/view.tsx | 4 +-
.../components/cycles/cycle-peek-overview.tsx | 2 +-
.../components/cycles/cycles-view-header.tsx | 23 +-
.../core/components/cycles/cycles-view.tsx | 4 +-
.../core/components/cycles/delete-modal.tsx | 2 +-
.../dropdowns/estimate-type-dropdown.tsx | 2 +-
.../cycles/dropdowns/filters/end-date.tsx | 2 +-
.../cycles/dropdowns/filters/root.tsx | 12 +-
.../cycles/dropdowns/filters/start-date.tsx | 2 +-
.../cycles/dropdowns/filters/status.tsx | 2 +-
apps/web/core/components/cycles/form.tsx | 14 +-
.../cycles/list/cycle-list-group-header.tsx | 8 +-
.../cycles/list/cycle-list-item-action.tsx | 18 +-
.../list/cycle-list-project-group-header.tsx | 6 +-
.../cycles/list/cycles-list-item.tsx | 6 +-
apps/web/core/components/cycles/list/root.tsx | 4 +-
.../core/components/cycles/quick-actions.tsx | 6 +-
.../cycles/transfer-issues-modal.tsx | 24 +-
.../components/cycles/transfer-issues.tsx | 4 +-
.../web/core/components/dropdowns/buttons.tsx | 17 +-
.../dropdowns/cycle/cycle-options.tsx | 18 +-
.../core/components/dropdowns/cycle/index.tsx | 9 +-
.../core/components/dropdowns/date-range.tsx | 18 +-
apps/web/core/components/dropdowns/date.tsx | 6 +-
.../core/components/dropdowns/estimate.tsx | 26 +-
.../dropdowns/intake-state/base.tsx | 18 +-
apps/web/core/components/dropdowns/layout.tsx | 14 +-
.../core/components/dropdowns/member/base.tsx | 4 +-
.../dropdowns/member/member-options.tsx | 22 +-
.../core/components/dropdowns/module/base.tsx | 9 +-
.../dropdowns/module/button-content.tsx | 6 +-
.../dropdowns/module/module-options.tsx | 20 +-
.../core/components/dropdowns/priority.tsx | 90 +-
.../components/dropdowns/project/base.tsx | 22 +-
.../core/components/dropdowns/state/base.tsx | 18 +-
.../editor/embeds/mentions/user.tsx | 19 +-
.../components/editor/lite-text/editor.tsx | 2 +-
.../editor/lite-text/lite-toolbar.tsx | 4 +-
.../components/editor/lite-text/toolbar.tsx | 28 +-
.../editor/sticky-editor/color-palette.tsx | 4 +-
.../editor/sticky-editor/editor.tsx | 2 +-
.../editor/sticky-editor/toolbar.tsx | 25 +-
.../empty-state/comic-box-button.tsx | 39 +-
.../empty-state/detailed-empty-state-root.tsx | 20 +-
.../empty-state/section-empty-state-root.tsx | 8 +-
.../empty-state/simple-empty-state-root.tsx | 6 +-
.../components/estimates/create/modal.tsx | 12 +-
.../components/estimates/create/stage-one.tsx | 22 +-
.../components/estimates/delete/modal.tsx | 12 +-
.../components/estimates/empty-screen.tsx | 2 +-
.../estimates/estimate-list-item.tsx | 8 +-
.../estimates/inputs/number-input.tsx | 2 +-
.../estimates/inputs/text-input.tsx | 2 +-
.../estimates/points/create-root.tsx | 4 +-
.../components/estimates/points/create.tsx | 12 +-
.../components/estimates/points/preview.tsx | 20 +-
.../components/estimates/points/update.tsx | 12 +-
.../components/estimates/radio-select.tsx | 10 +-
apps/web/core/components/estimates/root.tsx | 14 +-
apps/web/core/components/exporter/column.tsx | 14 +-
.../core/components/exporter/export-form.tsx | 14 +-
.../core/components/exporter/export-modal.tsx | 13 +-
.../core/components/exporter/prev-exports.tsx | 74 +-
.../components/exporter/single-export.tsx | 8 +-
.../gantt-chart/blocks/block-row.tsx | 14 +-
.../components/gantt-chart/blocks/block.tsx | 2 +-
.../components/gantt-chart/chart/header.tsx | 18 +-
.../gantt-chart/chart/main-content.tsx | 4 +-
.../components/gantt-chart/chart/root.tsx | 6 +-
.../gantt-chart/chart/views/month.tsx | 27 +-
.../gantt-chart/chart/views/quarter.tsx | 22 +-
.../gantt-chart/chart/views/week.tsx | 28 +-
.../gantt-chart/helpers/add-block.tsx | 2 +-
.../blockResizables/left-resizable.tsx | 6 +-
.../blockResizables/right-resizable.tsx | 6 +-
.../gantt-chart/helpers/draggable.tsx | 2 +-
.../gantt-chart/sidebar/issues/block.tsx | 21 +-
.../gantt-chart/sidebar/issues/sidebar.tsx | 2 +-
.../gantt-chart/sidebar/modules/block.tsx | 13 +-
.../components/gantt-chart/sidebar/root.tsx | 9 +-
.../global/product-updates/footer.tsx | 12 +-
.../components/global/timezone-select.tsx | 2 +-
.../home/home-dashboard-widgets.tsx | 2 +-
apps/web/core/components/home/root.tsx | 4 +-
.../core/components/home/user-greetings.tsx | 4 +-
.../home/widgets/empty-states/links.tsx | 2 +-
.../home/widgets/empty-states/no-projects.tsx | 34 +-
.../home/widgets/empty-states/recents.tsx | 2 +-
.../home/widgets/empty-states/stickies.tsx | 2 +-
.../components/home/widgets/links/action.tsx | 8 +-
.../links/create-update-link-modal.tsx | 18 +-
.../components/home/widgets/links/links.tsx | 2 +-
.../components/home/widgets/links/root.tsx | 4 +-
.../home/widgets/loaders/home-loader.tsx | 4 +-
.../home/widgets/loaders/quick-links.tsx | 2 +-
.../home/widgets/loaders/recent-activity.tsx | 2 +-
.../components/home/widgets/manage/index.tsx | 2 +-
.../manage/widget-item-drag-handle.tsx | 2 +-
.../home/widgets/manage/widget-item.tsx | 6 +-
.../home/widgets/recents/filters.tsx | 14 +-
.../components/home/widgets/recents/index.tsx | 6 +-
.../components/home/widgets/recents/issue.tsx | 12 +-
.../components/home/widgets/recents/page.tsx | 12 +-
.../home/widgets/recents/project.tsx | 8 +-
.../components/icons/locked-component.tsx | 2 +-
.../inbox/content/inbox-issue-header.tsx | 21 +-
.../content/inbox-issue-mobile-header.tsx | 13 +-
.../inbox/content/issue-properties.tsx | 32 +-
.../core/components/inbox/content/root.tsx | 2 +-
.../inbox-filter/applied-filters/date.tsx | 10 +-
.../inbox-filter/applied-filters/label.tsx | 10 +-
.../inbox-filter/applied-filters/member.tsx | 10 +-
.../inbox-filter/applied-filters/priority.tsx | 10 +-
.../inbox-filter/applied-filters/state.tsx | 10 +-
.../inbox-filter/applied-filters/status.tsx | 8 +-
.../inbox/inbox-filter/filters/date.tsx | 2 +-
.../inbox-filter/filters/filter-selection.tsx | 12 +-
.../inbox/inbox-filter/filters/labels.tsx | 4 +-
.../inbox/inbox-filter/filters/members.tsx | 4 +-
.../inbox/inbox-filter/filters/priority.tsx | 2 +-
.../inbox/inbox-filter/filters/state.tsx | 4 +-
.../inbox/inbox-filter/filters/status.tsx | 2 +-
.../components/inbox/inbox-filter/root.tsx | 2 +-
.../inbox/inbox-filter/sorting/order-by.tsx | 4 +-
.../components/inbox/inbox-issue-status.tsx | 6 +-
.../components/inbox/inbox-status-icon.tsx | 4 +-
.../inbox/modals/create-modal/create-root.tsx | 16 +-
.../modals/create-modal/issue-description.tsx | 2 +-
.../modals/create-modal/issue-properties.tsx | 4 +-
.../inbox/modals/create-modal/issue-title.tsx | 4 +-
.../inbox/modals/decline-issue-modal.tsx | 2 +-
.../inbox/modals/delete-issue-modal.tsx | 2 +-
.../inbox/modals/select-duplicate.tsx | 27 +-
.../inbox/modals/snooze-issue-modal.tsx | 6 +-
apps/web/core/components/inbox/root.tsx | 10 +-
.../inbox/sidebar/inbox-list-item.tsx | 16 +-
.../core/components/inbox/sidebar/root.tsx | 10 +-
.../components/instance/maintenance-view.tsx | 2 +-
.../components/instance/not-ready-view.tsx | 8 +-
.../integration/delete-import-modal.tsx | 22 +-
.../integration/github/import-configure.tsx | 2 +-
.../integration/github/import-confirm.tsx | 4 +-
.../integration/github/import-data.tsx | 16 +-
.../integration/github/import-users.tsx | 8 +-
.../integration/github/repo-details.tsx | 16 +-
.../components/integration/github/root.tsx | 12 +-
.../integration/github/select-repository.tsx | 2 +-
.../integration/github/single-user-select.tsx | 12 +-
.../web/core/components/integration/guide.tsx | 20 +-
.../integration/jira/confirm-import.tsx | 24 +-
.../integration/jira/give-details.tsx | 28 +-
.../integration/jira/import-users.tsx | 8 +-
.../integration/jira/jira-project-detail.tsx | 28 +-
.../core/components/integration/jira/root.tsx | 18 +-
.../components/integration/single-import.tsx | 6 +-
.../integration/single-integration-card.tsx | 8 +-
.../components/issues/archive-issue-modal.tsx | 12 +-
.../issues/attachment/attachment-detail.tsx | 8 +-
.../attachment/attachment-item-list.tsx | 8 +-
.../attachment/attachment-list-item.tsx | 10 +-
.../attachment-list-upload-item.tsx | 8 +-
.../attachment/attachment-upload-details.tsx | 8 +-
.../issues/attachment/attachment-upload.tsx | 4 +-
.../components/issues/attachment/root.tsx | 2 +-
.../issues/bulk-operations/upgrade-banner.tsx | 6 +-
.../issues/confirm-issue-discard.tsx | 14 +-
.../create-issue-toast-action-items.tsx | 8 +-
.../components/issues/delete-issue-modal.tsx | 2 +-
apps/web/core/components/issues/filters.tsx | 7 +-
.../attachments/title.tsx | 2 +-
.../issue-detail-widgets/links/title.tsx | 2 +-
.../relations/content.tsx | 2 +-
.../issue-detail-widgets/relations/title.tsx | 2 +-
.../issues/issue-detail-widgets/root.tsx | 2 +-
.../sub-issues/content.tsx | 12 +-
.../sub-issues/display-filters.tsx | 8 +-
.../sub-issues/filters.tsx | 18 +-
.../sub-issues/issues-list/list-group.tsx | 6 +-
.../sub-issues/issues-list/list-item.tsx | 15 +-
.../sub-issues/issues-list/properties.tsx | 3 +-
.../sub-issues/issues-list/root.tsx | 2 +-
.../issue-detail-widgets/sub-issues/title.tsx | 2 +-
.../issue-detail-widgets/widget-button.tsx | 16 +-
.../issues/issue-detail/cycle-select.tsx | 4 +-
.../issues/issue-detail/identifier-text.tsx | 59 +
.../issue-activity/activity-filter.tsx | 29 +-
.../activity/actions/archived-at.tsx | 4 +-
.../activity/actions/assignee.tsx | 4 +-
.../activity/actions/attachment.tsx | 2 +-
.../issue-activity/activity/actions/cycle.tsx | 8 +-
.../activity/actions/default.tsx | 2 +-
.../activity/actions/description.tsx | 2 +-
.../activity/actions/estimate.tsx | 2 +-
.../actions/helpers/activity-block.tsx | 10 +-
.../activity/actions/helpers/issue-link.tsx | 4 +-
.../activity/actions/helpers/issue-user.tsx | 4 +-
.../issue-activity/activity/actions/inbox.tsx | 2 +-
.../activity/actions/label-activity-chip.tsx | 4 +-
.../issue-activity/activity/actions/label.tsx | 2 +-
.../issue-activity/activity/actions/link.tsx | 8 +-
.../activity/actions/module.tsx | 8 +-
.../issue-activity/activity/actions/name.tsx | 2 +-
.../activity/actions/parent.tsx | 6 +-
.../activity/actions/priority.tsx | 4 +-
.../activity/actions/relation.tsx | 4 +-
.../activity/actions/start_date.tsx | 4 +-
.../issue-activity/activity/actions/state.tsx | 4 +-
.../activity/actions/target_date.tsx | 4 +-
.../issue-detail/issue-activity/root.tsx | 4 +-
.../issue-detail/issue-activity/sort-root.tsx | 27 +-
.../issue-detail-quick-actions.tsx | 18 +-
.../issue-detail/label/create-label.tsx | 16 +-
.../issue-detail/label/label-list-item.tsx | 29 +-
.../issues/issue-detail/label/root.tsx | 2 +-
.../label/select/label-select.tsx | 35 +-
.../links/create-update-link-modal.tsx | 16 +-
.../issues/issue-detail/links/link-detail.tsx | 18 +-
.../issues/issue-detail/links/link-item.tsx | 18 +-
.../issues/issue-detail/links/link-list.tsx | 2 +-
.../issues/issue-detail/links/root.tsx | 4 +-
.../issues/issue-detail/main-content.tsx | 2 +-
.../issues/issue-detail/module-select.tsx | 4 +-
.../issues/issue-detail/parent-select.tsx | 17 +-
.../issues/issue-detail/parent/root.tsx | 11 +-
.../issue-detail/parent/sibling-item.tsx | 2 +-
.../issues/issue-detail/parent/siblings.tsx | 4 +-
.../issues/issue-detail/relation-select.tsx | 16 +-
.../components/issues/issue-detail/root.tsx | 4 +-
.../issues/issue-detail/sidebar.tsx | 173 +--
.../issues/issue-detail/subscription.tsx | 6 +-
.../calendar/base-calendar-root.tsx | 2 +-
.../issue-layouts/calendar/calendar.tsx | 6 +-
.../issue-layouts/calendar/day-tile.tsx | 22 +-
.../calendar/dropdowns/months-dropdown.tsx | 8 +-
.../calendar/dropdowns/options-dropdown.tsx | 12 +-
.../issues/issue-layouts/calendar/header.tsx | 2 +-
.../issue-layouts/calendar/issue-block.tsx | 23 +-
.../issue-layouts/calendar/issue-blocks.tsx | 6 +-
.../calendar/quick-add-issue-actions.tsx | 6 +-
.../issue-layouts/calendar/week-days.tsx | 2 +-
.../issue-layouts/calendar/week-header.tsx | 9 +-
.../empty-states/archived-issues.tsx | 2 +-
.../issue-layouts/empty-states/cycle.tsx | 4 +-
.../issue-layouts/empty-states/module.tsx | 4 +-
.../empty-states/project-issues.tsx | 2 +-
.../filters/applied-filters/cycle.tsx | 4 +-
.../filters/applied-filters/date.tsx | 4 +-
.../filters/applied-filters/label.tsx | 4 +-
.../filters/applied-filters/members.tsx | 4 +-
.../filters/applied-filters/module.tsx | 4 +-
.../filters/applied-filters/priority.tsx | 4 +-
.../filters/applied-filters/project.tsx | 4 +-
.../filters/applied-filters/state-group.tsx | 4 +-
.../filters/applied-filters/state.tsx | 4 +-
.../display-filters-selection.tsx | 2 +-
.../display-filters/display-properties.tsx | 6 +-
.../filters/header/filters/assignee.tsx | 4 +-
.../filters/header/filters/created-by.tsx | 4 +-
.../filters/header/filters/cycle.tsx | 4 +-
.../filters/header/filters/due-date.tsx | 2 +-
.../filters/header/filters/labels.tsx | 4 +-
.../filters/header/filters/mentions.tsx | 4 +-
.../filters/header/filters/module.tsx | 4 +-
.../filters/header/filters/priority.tsx | 2 +-
.../filters/header/filters/project.tsx | 4 +-
.../filters/header/filters/start-date.tsx | 2 +-
.../filters/header/filters/state-group.tsx | 4 +-
.../filters/header/filters/state.tsx | 4 +-
.../filters/header/helpers/dropdown.tsx | 145 +-
.../filters/header/helpers/filter-header.tsx | 15 +-
.../filters/header/helpers/filter-option.tsx | 14 +-
.../filters/header/layout-selection.tsx | 24 +-
.../header/mobile-layout-selection.tsx | 10 +-
.../issues/issue-layouts/gantt/blocks.tsx | 15 +-
.../issue-layouts/group-drag-overlay.tsx | 8 +-
.../issue-layouts/kanban/base-kanban-root.tsx | 6 +-
.../issues/issue-layouts/kanban/block.tsx | 21 +-
.../issues/issue-layouts/kanban/default.tsx | 2 +-
.../kanban/headers/group-by-card.tsx | 22 +-
.../kanban/headers/sub-group-by-card.tsx | 12 +-
.../issue-layouts/kanban/kanban-group.tsx | 6 +-
.../issues/issue-layouts/kanban/swimlanes.tsx | 4 +-
.../issue-layouts/list/base-list-root.tsx | 2 +-
.../issues/issue-layouts/list/block-root.tsx | 2 +-
.../issues/issue-layouts/list/block.tsx | 23 +-
.../list/headers/group-by-card.tsx | 8 +-
.../issues/issue-layouts/list/list-group.tsx | 8 +-
.../properties/all-properties.tsx | 23 +-
.../properties/label-dropdown.tsx | 51 +-
.../issue-layouts/properties/labels.tsx | 18 +-
.../quick-action-dropdowns/all-issue.tsx | 18 +-
.../quick-action-dropdowns/archived-issue.tsx | 6 +-
.../quick-action-dropdowns/cycle-issue.tsx | 18 +-
.../quick-action-dropdowns/issue-detail.tsx | 23 +-
.../quick-action-dropdowns/module-issue.tsx | 18 +-
.../quick-action-dropdowns/project-issue.tsx | 18 +-
.../issue-layouts/quick-add/button/gantt.tsx | 4 +-
.../issue-layouts/quick-add/button/kanban.tsx | 4 +-
.../issue-layouts/quick-add/button/list.tsx | 4 +-
.../quick-add/button/spreadsheet.tsx | 4 +-
.../issue-layouts/quick-add/form/calendar.tsx | 6 +-
.../issue-layouts/quick-add/form/gantt.tsx | 8 +-
.../issue-layouts/quick-add/form/kanban.tsx | 10 +-
.../issue-layouts/quick-add/form/list.tsx | 8 +-
.../quick-add/form/spreadsheet.tsx | 8 +-
.../issues/issue-layouts/quick-add/root.tsx | 8 +-
.../roots/all-issue-layout-root.tsx | 4 +-
.../roots/project-layout-root.tsx | 4 +-
.../spreadsheet/columns/assignee-column.tsx | 4 +-
.../spreadsheet/columns/attachment-column.tsx | 2 +-
.../spreadsheet/columns/created-on-column.tsx | 2 +-
.../spreadsheet/columns/cycle-column.tsx | 4 +-
.../spreadsheet/columns/due-date-column.tsx | 6 +-
.../spreadsheet/columns/estimate-column.tsx | 4 +-
.../spreadsheet/columns/header-column.tsx | 14 +-
.../spreadsheet/columns/label-column.tsx | 4 +-
.../spreadsheet/columns/link-column.tsx | 2 +-
.../spreadsheet/columns/module-column.tsx | 4 +-
.../spreadsheet/columns/priority-column.tsx | 4 +-
.../spreadsheet/columns/start-date-column.tsx | 4 +-
.../spreadsheet/columns/state-column.tsx | 4 +-
.../spreadsheet/columns/sub-issue-column.tsx | 2 +-
.../spreadsheet/columns/updated-on-column.tsx | 2 +-
.../spreadsheet/issue-column.tsx | 2 +-
.../issue-layouts/spreadsheet/issue-row.tsx | 27 +-
.../spreadsheet/spreadsheet-header-column.tsx | 2 +-
.../spreadsheet/spreadsheet-header.tsx | 6 +-
.../spreadsheet/spreadsheet-table.tsx | 2 +-
.../spreadsheet/spreadsheet-view.tsx | 6 +-
.../components/default-properties.tsx | 8 +-
.../components/description-editor.tsx | 8 +-
.../issue-modal/components/parent-tag.tsx | 6 +-
.../issue-modal/components/title-input.tsx | 4 +-
.../components/issues/issue-modal/form.tsx | 22 +-
.../components/issues/issue-update-status.tsx | 2 +-
apps/web/core/components/issues/label.tsx | 10 +-
.../issues/parent-issues-list-modal.tsx | 25 +-
.../components/issues/peek-overview/error.tsx | 2 +-
.../issues/peek-overview/header.tsx | 21 +-
.../issues/peek-overview/loader.tsx | 2 +-
.../issues/peek-overview/properties.tsx | 176 +--
.../components/issues/peek-overview/root.tsx | 2 +
.../components/issues/peek-overview/view.tsx | 8 +-
.../components/issues/preview-card/date.tsx | 2 +-
.../components/issues/preview-card/root.tsx | 12 +-
.../issues/relations/issue-list-item.tsx | 11 +-
.../core/components/issues/select/base.tsx | 45 +-
.../core/components/issues/title-input.tsx | 8 +-
.../workspace-draft/draft-issue-block.tsx | 14 +-
.../draft-issue-properties.tsx | 2 +-
.../issues/workspace-draft/quick-action.tsx | 6 +-
.../issues/workspace-draft/root.tsx | 11 +-
.../labels/create-update-label-inline.tsx | 11 +-
.../components/labels/delete-label-modal.tsx | 4 +-
.../labels/label-block/label-item-block.tsx | 4 +-
.../labels/label-block/label-name.tsx | 2 +-
.../labels/label-drag-n-drop-HOC.tsx | 2 +-
.../labels/project-setting-label-group.tsx | 12 +-
.../labels/project-setting-label-item.tsx | 8 +-
.../labels/project-setting-label-list.tsx | 2 +-
.../modal/card/base-paid-plan-card.tsx | 25 +-
.../license/modal/card/checkout-button.tsx | 47 +-
.../license/modal/card/free-plan.tsx | 14 +-
.../license/modal/card/plan-upgrade.tsx | 6 +-
.../license/modal/card/talk-to-sales.tsx | 86 +-
.../analytics-sidebar/issue-progress.tsx | 14 +-
.../analytics-sidebar/progress-stats.tsx | 14 +-
.../modules/analytics-sidebar/root.tsx | 55 +-
.../modules/applied-filters/date.tsx | 4 +-
.../modules/applied-filters/members.tsx | 4 +-
.../modules/applied-filters/root.tsx | 12 +-
.../modules/applied-filters/status.tsx | 4 +-
.../modules/archived-modules/header.tsx | 10 +-
.../modules/archived-modules/modal.tsx | 18 +-
.../modules/archived-modules/root.tsx | 2 +-
.../modules/archived-modules/view.tsx | 4 +-
.../modules/delete-module-modal.tsx | 4 +-
.../modules/dropdowns/filters/lead.tsx | 4 +-
.../modules/dropdowns/filters/members.tsx | 4 +-
.../modules/dropdowns/filters/root.tsx | 12 +-
.../modules/dropdowns/filters/start-date.tsx | 2 +-
.../modules/dropdowns/filters/status.tsx | 2 +-
.../modules/dropdowns/filters/target-date.tsx | 2 +-
.../components/modules/dropdowns/order-by.tsx | 6 +-
apps/web/core/components/modules/form.tsx | 14 +-
.../components/modules/gantt-chart/blocks.tsx | 8 +-
.../modules/links/create-update-modal.tsx | 14 +-
.../components/modules/links/list-item.tsx | 27 +-
.../components/modules/module-card-item.tsx | 14 +-
.../components/modules/module-layout-icon.tsx | 4 +-
.../modules/module-list-item-action.tsx | 4 +-
.../components/modules/module-list-item.tsx | 10 +-
.../modules/module-peek-overview.tsx | 2 +-
.../modules/module-status-dropdown.tsx | 2 +-
.../components/modules/module-view-header.tsx | 27 +-
.../core/components/modules/quick-actions.tsx | 6 +-
.../core/components/modules/select/status.tsx | 6 +-
.../modules/sidebar-select/select-status.tsx | 4 +-
.../components/navigation/app-rail-root.tsx | 15 +-
.../customize-navigation-dialog.tsx | 64 +-
.../navigation/project-actions-menu.tsx | 4 +-
.../navigation/project-header-button.tsx | 10 +-
.../components/navigation/project-header.tsx | 13 +-
.../tab-navigation-overflow-menu.tsx | 10 +-
.../navigation/tab-navigation-root.tsx | 2 +-
.../tab-navigation-visible-item.tsx | 11 +-
.../components/navigation/top-nav-power-k.tsx | 14 +-
.../onboarding/create-or-join-workspaces.tsx | 2 +-
.../onboarding/create-workspace.tsx | 50 +-
.../web/core/components/onboarding/header.tsx | 8 +-
.../components/onboarding/invitations.tsx | 24 +-
.../components/onboarding/invite-members.tsx | 44 +-
.../components/onboarding/profile-setup.tsx | 48 +-
.../components/onboarding/step-indicator.tsx | 4 +-
.../onboarding/steps/common/header.tsx | 4 +-
.../onboarding/steps/profile/consent.tsx | 8 +-
.../onboarding/steps/profile/root.tsx | 16 +-
.../onboarding/steps/profile/set-password.tsx | 18 +-
.../components/onboarding/steps/role/root.tsx | 18 +-
.../components/onboarding/steps/team/root.tsx | 40 +-
.../onboarding/steps/usecase/root.tsx | 22 +-
.../onboarding/steps/workspace/create.tsx | 46 +-
.../steps/workspace/join-invites.tsx | 12 +-
.../onboarding/switch-account-dropdown.tsx | 12 +-
.../onboarding/switch-account-modal.tsx | 16 +-
.../components/pages/editor/editor-body.tsx | 2 +-
.../pages/editor/header/logo-picker.tsx | 4 +-
.../components/pages/editor/header/root.tsx | 4 +-
.../pages/editor/summary/content-browser.tsx | 2 +-
.../editor/summary/heading-components.tsx | 8 +-
.../core/components/pages/editor/title.tsx | 4 +-
.../pages/editor/toolbar/color-dropdown.tsx | 139 +-
.../components/pages/editor/toolbar/root.tsx | 6 +-
.../pages/editor/toolbar/toolbar.tsx | 77 +-
.../pages/header/archived-badge.tsx | 4 +-
.../pages/header/copy-link-control.tsx | 53 +-
.../pages/header/favorite-control.tsx | 13 +-
.../components/pages/header/offline-badge.tsx | 4 +-
.../components/pages/header/syncing-badge.tsx | 33 +-
.../pages/list/applied-filters/root.tsx | 6 +-
.../pages/list/block-item-action.tsx | 6 +-
apps/web/core/components/pages/list/block.tsx | 2 +-
.../components/pages/list/filters/root.tsx | 24 +-
.../core/components/pages/list/order-by.tsx | 11 +-
.../components/pages/list/search-input.tsx | 29 +-
.../components/pages/list/tab-navigation.tsx | 15 +-
.../pages/loaders/page-content-loader.tsx | 2 +-
.../components/pages/loaders/page-loader.tsx | 4 +-
.../pages/modals/delete-page-modal.tsx | 3 +-
.../pages/modals/export-page-modal.tsx | 14 +-
.../components/pages/modals/page-form.tsx | 18 +-
.../components/pages/navigation-pane/root.tsx | 6 +-
.../navigation-pane/tab-panels/assets.tsx | 12 +-
.../tab-panels/info/actors-info.tsx | 14 +-
.../tab-panels/info/document-info.tsx | 6 +-
.../navigation-pane/tab-panels/info/root.tsx | 2 +-
.../tab-panels/info/version-history.tsx | 30 +-
.../pages/navigation-pane/tabs-list.tsx | 6 +-
.../pages/navigation-pane/types/extensions.ts | 6 +-
.../components/pages/version/main-content.tsx | 22 +-
.../core/components/pages/version/root.tsx | 2 +-
.../components/power-k/menus/empty-state.tsx | 2 +-
.../ui/modal/command-item-shortcut-badge.tsx | 6 +-
.../power-k/ui/modal/command-item.tsx | 4 +-
.../power-k/ui/modal/context-indicator.tsx | 10 +-
.../components/power-k/ui/modal/footer.tsx | 4 +-
.../components/power-k/ui/modal/header.tsx | 8 +-
.../power-k/ui/modal/search-menu.tsx | 4 +-
.../power-k/ui/modal/search-results-map.tsx | 10 +-
.../power-k/ui/modal/shortcuts-root.tsx | 17 +-
.../components/power-k/ui/modal/wrapper.tsx | 4 +-
.../ui/pages/work-item-selection-page.tsx | 6 +-
.../power-k/ui/renderer/shortcut.tsx | 6 +-
.../core/components/preferences/section.tsx | 4 +-
.../profile/activity/activity-list.tsx | 24 +-
.../activity/profile-activity-list.tsx | 26 +-
apps/web/core/components/profile/form.tsx | 40 +-
.../notification/email-notification-form.tsx | 22 +-
.../components/profile/overview/activity.tsx | 16 +-
.../overview/priority-distribution.tsx | 2 +-
.../profile/overview/state-distribution.tsx | 6 +-
.../components/profile/overview/stats.tsx | 8 +-
.../components/profile/overview/workload.tsx | 8 +-
.../profile/preferences/language-timezone.tsx | 10 +-
.../profile-setting-content-header.tsx | 6 +-
.../profile-setting-content-wrapper.tsx | 2 +-
apps/web/core/components/profile/sidebar.tsx | 42 +-
apps/web/core/components/profile/time.tsx | 2 +-
.../project-states/create-update/form.tsx | 10 +-
.../components/project-states/group-item.tsx | 17 +-
.../project-states/options/delete.tsx | 13 +-
.../options/mark-as-default.tsx | 4 +-
.../project-states/state-delete-modal.tsx | 4 +-
.../project-states/state-item-title.tsx | 12 +-
.../components/project-states/state-item.tsx | 2 +-
.../project/applied-filters/access.tsx | 4 +-
.../project/applied-filters/date.tsx | 4 +-
.../project/applied-filters/members.tsx | 4 +-
.../project-display-filters.tsx | 4 +-
.../project/applied-filters/root.tsx | 8 +-
apps/web/core/components/project/card.tsx | 38 +-
.../project/confirm-project-member-remove.tsx | 20 +-
.../project/create/common-attributes.tsx | 12 +-
.../core/components/project/create/header.tsx | 6 +-
.../project/create/project-create-buttons.tsx | 6 +-
.../project/delete-project-modal.tsx | 27 +-
.../project/dropdowns/filters/access.tsx | 2 +-
.../project/dropdowns/filters/created-at.tsx | 2 +-
.../project/dropdowns/filters/lead.tsx | 4 +-
.../project/dropdowns/filters/member-list.tsx | 4 +-
.../project/dropdowns/filters/members.tsx | 4 +-
.../project/dropdowns/filters/root.tsx | 12 +-
.../components/project/dropdowns/order-by.tsx | 19 +-
.../core/components/project/empty-state.tsx | 6 +-
.../core/components/project/form-loader.tsx | 10 +-
apps/web/core/components/project/form.tsx | 41 +-
apps/web/core/components/project/header.tsx | 5 +-
.../components/project/integration-card.tsx | 6 +-
.../components/project/join-project-modal.tsx | 10 +-
.../project/leave-project-modal.tsx | 30 +-
.../project/member-header-column.tsx | 10 +-
.../components/project/member-list-item.tsx | 6 +-
.../core/components/project/member-list.tsx | 13 +-
.../core/components/project/member-select.tsx | 10 +-
.../components/project/multi-select-modal.tsx | 30 +-
.../project/project-feature-update.tsx | 8 +-
.../project-settings-member-defaults.tsx | 4 +-
.../project/publish-project/modal.tsx | 42 +-
.../components/project/search-projects.tsx | 19 +-
.../project/send-project-invitation-modal.tsx | 28 +-
.../archive-project/archive-restore-modal.tsx | 13 +-
.../settings/archive-project/selection.tsx | 8 +-
.../settings/delete-project-section.tsx | 11 +-
.../project/settings/features-list.tsx | 15 +-
.../components/project/settings/helper.tsx | 4 +-
.../project/settings/member-columns.tsx | 6 +-
apps/web/core/components/readonly/cycle.tsx | 2 +-
apps/web/core/components/readonly/date.tsx | 6 +-
.../web/core/components/readonly/estimate.tsx | 2 +-
apps/web/core/components/readonly/labels.tsx | 6 +-
apps/web/core/components/readonly/member.tsx | 12 +-
apps/web/core/components/readonly/module.tsx | 6 +-
.../web/core/components/readonly/priority.tsx | 2 +-
apps/web/core/components/readonly/state.tsx | 4 +-
.../rich-filters/add-filters/button.tsx | 13 +-
.../rich-filters/add-filters/dropdown.tsx | 6 +-
.../rich-filters/filter-item/close-button.tsx | 2 +-
.../rich-filters/filter-item/container.tsx | 6 +-
.../rich-filters/filter-item/property.tsx | 2 +-
.../rich-filters/filter-item/root.tsx | 4 +-
.../filter-value-input/date/range.tsx | 2 +-
.../filter-value-input/date/single.tsx | 4 +-
.../select/selected-options-display.tsx | 10 +-
.../filter-value-input/select/shared.tsx | 4 +-
.../components/rich-filters/filters-row.tsx | 22 +-
.../rich-filters/filters-toggle.tsx | 20 +-
.../core/components/rich-filters/shared.ts | 2 +-
apps/web/core/components/settings/header.tsx | 33 +-
apps/web/core/components/settings/heading.tsx | 8 +-
.../core/components/settings/mobile/nav.tsx | 10 +-
.../project/sidebar/nav-item-children.tsx | 9 +-
.../settings/project/sidebar/root.tsx | 2 +-
.../components/settings/sidebar/header.tsx | 6 +-
.../components/settings/sidebar/nav-item.tsx | 20 +-
.../core/components/settings/sidebar/root.tsx | 6 +-
apps/web/core/components/settings/tabs.tsx | 10 +-
.../core/components/sidebar/add-button.tsx | 4 +-
.../components/sidebar/resizable-sidebar.tsx | 18 +-
.../core/components/sidebar/search-button.tsx | 8 +-
.../core/components/sidebar/sidebar-item.tsx | 14 +-
.../components/sidebar/sidebar-navigation.tsx | 7 +-
.../sidebar/sidebar-toggle-button.tsx | 2 +-
.../components/sidebar/sidebar-wrapper.tsx | 6 +-
.../core/components/stickies/action-bar.tsx | 18 +-
.../stickies/layout/stickies-infinite.tsx | 2 +-
.../stickies/layout/stickies-loader.tsx | 2 +-
.../stickies/layout/stickies-truncated.tsx | 2 +-
.../core/components/stickies/modal/search.tsx | 22 +-
.../components/stickies/modal/stickies.tsx | 12 +-
.../components/stickies/sticky/inputs.tsx | 2 +-
.../core/components/stickies/sticky/root.tsx | 2 +-
.../sticky/sticky-item-drag-handle.tsx | 2 +-
apps/web/core/components/stickies/widget.tsx | 6 +-
apps/web/core/components/ui/empty-space.tsx | 25 +-
.../integration-and-import-export-banner.tsx | 8 +-
apps/web/core/components/ui/labels-list.tsx | 4 +-
.../ui/loader/cycle-module-board-loader.tsx | 22 +-
.../ui/loader/cycle-module-list-loader.tsx | 14 +-
.../loader/layouts/calendar-layout-loader.tsx | 14 +-
.../ui/loader/layouts/gantt-layout-loader.tsx | 30 +-
.../loader/layouts/kanban-layout-loader.tsx | 6 +-
.../ui/loader/layouts/list-layout-loader.tsx | 26 +-
.../loader/layouts/members-layout-loader.tsx | 4 +-
.../project-inbox/inbox-layout-loader.tsx | 2 +-
.../project-inbox/inbox-sidebar-loader.tsx | 14 +-
.../layouts/spreadsheet-layout-loader.tsx | 21 +-
.../ui/loader/notification-loader.tsx | 10 +-
.../components/ui/loader/pages-loader.tsx | 18 +-
.../components/ui/loader/projects-loader.tsx | 25 +-
.../ui/loader/settings/activity.tsx | 6 +-
.../ui/loader/settings/api-token.tsx | 14 +-
.../components/ui/loader/settings/email.tsx | 16 +-
.../ui/loader/settings/import-and-export.tsx | 10 +-
.../ui/loader/settings/integration.tsx | 15 +-
.../components/ui/loader/settings/members.tsx | 12 +-
.../ui/loader/settings/web-hook.tsx | 12 +-
.../components/ui/loader/view-list-loader.tsx | 12 +-
.../components/ui/markdown-to-component.tsx | 10 +-
.../components/ui/profile-empty-state.tsx | 6 +-
.../core/components/user/user-greetings.tsx | 4 +-
.../views/applied-filters/access.tsx | 4 +-
.../components/views/applied-filters/root.tsx | 6 +-
.../views/filters/filter-selection.tsx | 12 +-
.../components/views/filters/order-by.tsx | 15 +-
apps/web/core/components/views/form.tsx | 20 +-
.../core/components/views/quick-actions.tsx | 6 +-
.../components/views/view-list-header.tsx | 19 +-
.../views/view-list-item-action.tsx | 4 +-
.../core/components/views/view-list-item.tsx | 2 +-
apps/web/core/components/views/views-list.tsx | 2 +-
.../core/components/web-hooks/empty-state.tsx | 8 +-
.../web-hooks/form/delete-section.tsx | 9 +-
.../components/web-hooks/form/event-types.tsx | 4 +-
.../core/components/web-hooks/form/form.tsx | 11 +-
.../form/individual-event-options.tsx | 4 +-
.../core/components/web-hooks/form/input.tsx | 2 +-
.../components/web-hooks/form/secret-key.tsx | 23 +-
.../core/components/web-hooks/form/toggle.tsx | 2 +-
.../web-hooks/generated-hook-details.tsx | 8 +-
.../web-hooks/webhooks-list-item.tsx | 4 +-
.../sidebar/filters/applied-filter.tsx | 4 +-
.../sidebar/filters/menu/menu-option-item.tsx | 15 +-
.../sidebar/filters/menu/root.tsx | 2 +-
.../header/options/menu-option/menu-item.tsx | 11 +-
.../header/options/menu-option/root.tsx | 4 +-
.../sidebar/header/options/root.tsx | 6 +-
.../sidebar/header/root.tsx | 4 +-
.../sidebar/loader.tsx | 10 +-
.../sidebar/notification-card/content.tsx | 8 +-
.../sidebar/notification-card/item.tsx | 22 +-
.../notification-card/options/archive.tsx | 4 +-
.../notification-card/options/button.tsx | 2 +-
.../notification-card/options/read.tsx | 2 +-
.../notification-card/options/root.tsx | 6 +-
.../options/snooze/modal.tsx | 50 +-
.../notification-card/options/snooze/root.tsx | 12 +-
.../workspace-notifications/sidebar/root.tsx | 15 +-
.../ConfirmWorkspaceMemberRemove.tsx | 14 +-
.../workspace/billing/comparison/base.tsx | 31 +-
.../billing/comparison/feature-detail.tsx | 7 +-
.../confirm-workspace-member-remove.tsx | 18 +-
.../workspace/create-workspace-form.tsx | 30 +-
.../workspace/delete-workspace-form.tsx | 28 +-
.../workspace/invite-modal/actions.tsx | 6 +-
.../workspace/invite-modal/fields.tsx | 23 +-
.../workspace/invite-modal/form.tsx | 4 +-
apps/web/core/components/workspace/logo.tsx | 2 +-
.../settings/invitations-list-item.tsx | 26 +-
.../workspace/settings/member-columns.tsx | 12 +-
.../workspace/settings/members-list-item.tsx | 8 +-
.../workspace/settings/members-list.tsx | 10 +-
.../workspace/settings/workspace-details.tsx | 29 +-
.../workspace/sidebar/dropdown-item.tsx | 28 +-
.../sidebar/favorites/favorite-folder.tsx | 33 +-
.../common/favorite-item-drag-handle.tsx | 2 +-
.../common/favorite-item-quick-action.tsx | 5 +-
.../common/favorite-item-title.tsx | 2 +-
.../common/favorite-item-wrapper.tsx | 4 +-
.../sidebar/favorites/favorite-items/root.tsx | 4 +-
.../sidebar/favorites/favorites-menu.tsx | 14 +-
.../workspace/sidebar/help-section/root.tsx | 34 +-
.../workspace/sidebar/project-navigation.tsx | 2 +-
.../workspace/sidebar/projects-list-item.tsx | 33 +-
.../workspace/sidebar/projects-list.tsx | 16 +-
.../workspace/sidebar/quick-actions.tsx | 2 +-
.../workspace/sidebar/sidebar-item.tsx | 2 +-
.../workspace/sidebar/sidebar-menu-items.tsx | 10 +-
.../workspace/sidebar/user-menu-item.tsx | 2 +-
.../workspace/sidebar/user-menu-root.tsx | 14 +-
.../sidebar/workspace-menu-header.tsx | 12 +-
.../workspace/sidebar/workspace-menu-item.tsx | 2 +-
.../workspace/sidebar/workspace-menu-root.tsx | 28 +-
.../views/default-view-list-item.tsx | 6 +-
.../views/default-view-quick-action.tsx | 8 +-
.../core/components/workspace/views/form.tsx | 16 +-
.../components/workspace/views/header.tsx | 6 +-
.../workspace/views/quick-action.tsx | 8 +-
.../workspace/views/view-list-item.tsx | 8 +-
apps/web/core/constants/plans.tsx | 10 +-
apps/web/core/hooks/use-debounce.tsx | 2 +-
apps/web/core/hooks/use-timezone.tsx | 4 +-
.../layouts/auth-layout/workspace-wrapper.tsx | 38 +-
.../web/core/layouts/default-layout/index.tsx | 4 +-
apps/web/package.json | 2 +-
apps/web/postcss.config.cjs | 1 -
apps/web/postcss.config.js | 3 +
apps/web/styles/emoji.css | 104 +-
apps/web/styles/globals.css | 923 ++-----------
apps/web/styles/power-k.css | 60 +-
apps/web/tailwind.config.cjs | 5 -
packages/constants/src/chart.ts | 4 +-
packages/constants/src/cycle.ts | 4 +-
packages/constants/src/graph.ts | 8 +-
packages/constants/src/issue/filter.ts | 10 +-
packages/constants/src/module.ts | 8 +-
packages/editor/postcss.config.js | 10 +-
.../core/components/links/link-edit-view.tsx | 12 +-
.../core/components/links/link-preview.tsx | 8 +-
.../src/core/components/menus/block-menu.tsx | 4 +-
.../menus/bubble-menu/alignment-selector.tsx | 4 +-
.../menus/bubble-menu/color-selector.tsx | 27 +-
.../menus/bubble-menu/link-selector.tsx | 18 +-
.../menus/bubble-menu/node-selector.tsx | 12 +-
.../components/menus/bubble-menu/root.tsx | 6 +-
.../src/core/extensions/callout/block.tsx | 4 +-
.../extensions/callout/color-selector.tsx | 12 +-
.../core/extensions/callout/logo-selector.tsx | 4 +-
.../src/core/extensions/code-inline/index.tsx | 2 +-
.../extensions/code/code-block-node-view.tsx | 6 +-
.../custom-image/components/block.tsx | 11 +-
.../components/toolbar/alignment.tsx | 6 +-
.../components/toolbar/download.tsx | 2 +-
.../components/toolbar/full-screen/modal.tsx | 12 +-
.../components/toolbar/full-screen/root.tsx | 2 +-
.../custom-image/components/toolbar/root.tsx | 2 +-
.../custom-image/components/upload-status.tsx | 2 +-
.../custom-image/components/uploader.tsx | 37 +-
.../core/extensions/custom-link/extension.tsx | 2 +-
.../emoji/components/emojis-list.tsx | 10 +-
.../src/core/extensions/horizontal-rule.ts | 2 +-
.../mentions/mentions-list-dropdown.tsx | 14 +-
.../slash-commands/command-items-list.tsx | 11 +-
.../slash-commands/command-menu-item.tsx | 8 +-
.../slash-commands/command-menu.tsx | 4 +-
.../editor/src/core/extensions/starter-kit.ts | 6 +-
.../plugins/drag-handles/color-selector.tsx | 14 +-
.../drag-handles/column/drag-handle.tsx | 15 +-
.../plugins/drag-handles/column/dropdown.tsx | 6 +-
.../plugins/drag-handles/row/drag-handle.tsx | 15 +-
.../plugins/drag-handles/row/dropdown.tsx | 6 +-
.../table/plugins/drag-handles/utils.ts | 2 +-
packages/editor/src/core/helpers/common.ts | 4 +-
packages/editor/src/core/plugins/ai-handle.ts | 2 +-
.../editor/src/core/plugins/drag-handle.ts | 6 +-
packages/editor/src/styles/editor.css | 22 +-
packages/editor/src/styles/table.css | 47 +-
packages/editor/src/styles/tailwind.css | 3 -
packages/editor/src/styles/variables.css | 2 +-
packages/editor/tailwind.config.js | 6 -
packages/i18n/src/locales/en/translations.ts | 3 +-
packages/propel/.storybook/preview.ts | 3 +-
packages/propel/.storybook/tailwind.css | 2 +
packages/propel/package.json | 7 +-
packages/propel/postcss.config.js | 4 +-
.../src/accordion/accordion.stories.tsx | 4 +-
packages/propel/src/accordion/accordion.tsx | 2 +-
.../animated-counter.stories.tsx | 81 +-
.../src/animated-counter/animated-counter.tsx | 35 +-
packages/propel/src/avatar/avatar.tsx | 12 +-
packages/propel/src/badge/badge.stories.tsx | 148 ++
packages/propel/src/badge/badge.tsx | 22 +
packages/propel/src/badge/helper.tsx | 46 +
packages/propel/src/badge/index.ts | 3 +
packages/propel/src/banner/banner.stories.tsx | 2 +-
packages/propel/src/banner/helper.tsx | 8 +-
packages/propel/src/button/button.stories.tsx | 102 +-
packages/propel/src/button/button.tsx | 32 +-
packages/propel/src/button/helper.tsx | 174 +--
packages/propel/src/button/index.ts | 4 +-
packages/propel/src/calendar/root.tsx | 2 +-
packages/propel/src/card/card.stories.tsx | 68 +-
packages/propel/src/card/helper.tsx | 3 +-
.../propel/src/charts/area-chart/root.tsx | 4 +-
packages/propel/src/charts/bar-chart/bar.tsx | 4 +-
packages/propel/src/charts/bar-chart/root.tsx | 2 +-
.../propel/src/charts/components/legend.tsx | 4 +-
.../propel/src/charts/components/tick.tsx | 2 +-
.../propel/src/charts/components/tooltip.tsx | 12 +-
.../propel/src/charts/line-chart/root.tsx | 4 +-
packages/propel/src/charts/pie-chart/root.tsx | 2 +-
.../propel/src/charts/pie-chart/tooltip.tsx | 12 +-
.../propel/src/charts/radar-chart/root.tsx | 4 +-
.../propel/src/charts/scatter-chart/root.tsx | 4 +-
.../src/charts/tree-map/map-content.tsx | 12 +-
packages/propel/src/charts/tree-map/root.tsx | 2 +-
.../propel/src/charts/tree-map/tooltip.tsx | 6 +-
.../src/collapsible/collapsible.stories.tsx | 31 +-
.../propel/src/collapsible/collapsible.tsx | 2 +-
.../propel/src/combobox/combobox.stories.tsx | 2 +-
packages/propel/src/combobox/combobox.tsx | 10 +-
.../propel/src/command/command.stories.tsx | 76 +-
packages/propel/src/command/command.tsx | 4 +-
.../src/context-menu/context-menu.stories.tsx | 38 +-
.../propel/src/context-menu/context-menu.tsx | 16 +-
.../design-system-philosophy.stories.tsx | 428 ++++++
packages/propel/src/dialog/dialog.stories.tsx | 91 +-
packages/propel/src/dialog/root.tsx | 6 +-
.../emoji-picker.stories.tsx | 50 +-
.../src/emoji-icon-picker/emoji-picker.tsx | 11 +-
.../src/emoji-icon-picker/emoji/emoji.tsx | 10 +-
.../src/emoji-icon-picker/icon/icon-root.tsx | 29 +-
.../emoji-icon-picker/icon/lucide-root.tsx | 2 +-
.../emoji-icon-picker/icon/material-root.tsx | 10 +-
.../propel/src/emoji-icon-picker/logo.tsx | 4 +-
.../emoji-reaction-picker.stories.tsx | 50 +-
.../emoji-reaction/emoji-reaction-picker.tsx | 5 +-
.../emoji-reaction/emoji-reaction.stories.tsx | 10 +-
.../src/emoji-reaction/emoji-reaction.tsx | 18 +-
.../empty-state/assets-showcase.stories.tsx | 60 +-
.../propel/src/empty-state/assets/helper.tsx | 12 +-
.../assets/horizontal-stack/customer.tsx | 28 +-
.../assets/horizontal-stack/epic.tsx | 28 +-
.../assets/horizontal-stack/estimate.tsx | 28 +-
.../assets/horizontal-stack/export.tsx | 36 +-
.../assets/horizontal-stack/intake.tsx | 40 +-
.../assets/horizontal-stack/label.tsx | 32 +-
.../assets/horizontal-stack/link.tsx | 42 +-
.../assets/horizontal-stack/members.tsx | 40 +-
.../assets/horizontal-stack/note.tsx | 34 +-
.../assets/horizontal-stack/priority.tsx | 46 +-
.../assets/horizontal-stack/project.tsx | 28 +-
.../assets/horizontal-stack/settings.tsx | 32 +-
.../assets/horizontal-stack/state.tsx | 28 +-
.../assets/horizontal-stack/template.tsx | 36 +-
.../assets/horizontal-stack/token.tsx | 36 +-
.../assets/horizontal-stack/unknown.tsx | 54 +-
.../assets/horizontal-stack/webhook.tsx | 28 +-
.../assets/horizontal-stack/work-item.tsx | 40 +-
.../assets/horizontal-stack/worklog.tsx | 36 +-
.../empty-state/assets/illustration/inbox.tsx | 49 +-
.../assets/illustration/search.tsx | 24 +-
.../assets/vertical-stack/404-error.tsx | 108 +-
.../assets/vertical-stack/archived-cycle.tsx | 184 +--
.../assets/vertical-stack/archived-module.tsx | 136 +-
.../vertical-stack/archived-work-item.tsx | 162 +--
.../assets/vertical-stack/changelog.tsx | 2 +-
.../assets/vertical-stack/customer.tsx | 156 +--
.../assets/vertical-stack/cycle.tsx | 121 +-
.../assets/vertical-stack/dashboard.tsx | 156 +--
.../assets/vertical-stack/draft.tsx | 120 +-
.../assets/vertical-stack/epic.tsx | 106 +-
.../assets/vertical-stack/initiative.tsx | 104 +-
.../assets/vertical-stack/invalid-link.tsx | 90 +-
.../assets/vertical-stack/module.tsx | 212 +--
.../assets/vertical-stack/no-access.tsx | 54 +-
.../assets/vertical-stack/page.tsx | 130 +-
.../assets/vertical-stack/project.tsx | 117 +-
.../assets/vertical-stack/server-error.tsx | 206 +--
.../assets/vertical-stack/teamspace.tsx | 156 +--
.../assets/vertical-stack/view.tsx | 176 +--
.../assets/vertical-stack/work-item.tsx | 110 +-
.../compact-empty-state.stories.tsx | 2 +-
.../src/empty-state/compact-empty-state.tsx | 8 +-
.../detailed-empty-state.stories.tsx | 4 +-
.../src/empty-state/detailed-empty-state.tsx | 8 +-
packages/propel/src/icon-button/helper.tsx | 49 +
.../src/icon-button/icon-button.stories.tsx | 174 +++
.../propel/src/icon-button/icon-button.tsx | 42 +
packages/propel/src/icon-button/index.ts | 3 +
.../propel/src/icons/actions/copy-link.tsx | 13 +
packages/propel/src/icons/actions/index.ts | 1 +
packages/propel/src/icons/constants.tsx | 2 +
packages/propel/src/icons/icons.stories.tsx | 108 +-
packages/propel/src/icons/priority-icon.tsx | 22 +-
packages/propel/src/icons/properties/index.ts | 1 +
.../icons/properties/label-filled-icon.tsx | 17 +
packages/propel/src/icons/registry.ts | 4 +
packages/propel/src/input/input.stories.tsx | 4 +-
packages/propel/src/input/input.tsx | 8 +-
packages/propel/src/menu/menu.stories.tsx | 10 +-
packages/propel/src/menu/menu.tsx | 18 +-
packages/propel/src/pill/pill.stories.tsx | 2 +-
packages/propel/src/pill/pill.tsx | 12 +-
.../propel/src/popover/popover.stories.tsx | 97 +-
packages/propel/src/portal/portal.stories.tsx | 14 +-
.../src/scrollarea/scrollarea.stories.tsx | 51 +-
packages/propel/src/scrollarea/scrollarea.tsx | 2 +-
.../src/separator/separator.stories.tsx | 4 +-
packages/propel/src/separator/separator.tsx | 2 +-
packages/propel/src/skeleton/root.tsx | 8 +-
.../spinners/circular-bar-spinner.stories.tsx | 24 +-
.../src/spinners/circular-spinner.stories.tsx | 24 +-
.../propel/src/spinners/circular-spinner.tsx | 2 +-
.../propel/src/styles/fonts/Inter/LICENSE | 1 -
.../fonts/Inter/inter-v13-latin-200.woff2 | Bin 22440 -> 0 bytes
.../fonts/Inter/inter-v13-latin-300.woff2 | Bin 22444 -> 0 bytes
.../fonts/Inter/inter-v13-latin-500.woff2 | Bin 22760 -> 0 bytes
.../fonts/Inter/inter-v13-latin-600.woff2 | Bin 22820 -> 0 bytes
.../fonts/Inter/inter-v13-latin-700.woff2 | Bin 22904 -> 0 bytes
.../fonts/Inter/inter-v13-latin-800.woff2 | Bin 22792 -> 0 bytes
.../fonts/Inter/inter-v13-latin-regular.woff2 | Bin 21564 -> 0 bytes
packages/propel/src/styles/fonts/index.css | 87 --
.../propel/src/styles/react-day-picker.css | 534 ++++----
packages/propel/src/switch/root.tsx | 12 +-
packages/propel/src/switch/switch.stories.tsx | 48 +-
.../tab-navigation/tab-navigation-item.tsx | 7 +-
.../tab-navigation/tab-navigation.stories.tsx | 14 +-
packages/propel/src/table/core.tsx | 24 +-
packages/propel/src/table/table.stories.tsx | 14 +-
packages/propel/src/tabs/tabs.stories.tsx | 49 +-
packages/propel/src/tabs/tabs.tsx | 18 +-
packages/propel/src/toast/toast.stories.tsx | 376 +++++-
packages/propel/src/toast/toast.tsx | 163 ++-
.../propel/src/toolbar/toolbar.stories.tsx | 10 +-
packages/propel/src/toolbar/toolbar.tsx | 29 +-
packages/propel/src/tooltip/root.tsx | 8 +-
.../propel/src/tooltip/tooltip.stories.tsx | 60 +-
packages/propel/src/utils/classname.tsx | 62 +-
packages/propel/tailwind.config.ts | 7 -
packages/propel/tsdown.config.ts | 2 +
packages/tailwind-config/AGENTS.md | 667 ++++++++++
packages/tailwind-config/animations.css | 77 ++
packages/tailwind-config/global.css | 833 ------------
packages/tailwind-config/index.css | 203 +++
packages/tailwind-config/package.json | 21 +-
packages/tailwind-config/postcss.config.js | 7 +-
packages/tailwind-config/tailwind.config.js | 492 -------
packages/tailwind-config/variables.css | 1185 +++++++++++++++++
packages/types/src/index.ts | 1 +
packages/types/src/issues/issue-identifier.ts | 37 +
packages/ui/package.json | 2 +-
packages/ui/postcss.config.js | 4 +-
.../auth-form/auth-confirm-password-input.tsx | 2 +-
.../ui/src/auth-form/auth-forgot-password.tsx | 2 +-
packages/ui/src/auth-form/auth-form.tsx | 4 +-
packages/ui/src/auth-form/auth-input.tsx | 10 +-
packages/ui/src/avatar/avatar-group.tsx | 8 +-
packages/ui/src/avatar/avatar.tsx | 68 +-
packages/ui/src/avatar/helper.tsx | 64 +
packages/ui/src/badge/helper.tsx | 54 +-
packages/ui/src/billing/index.ts | 1 -
packages/ui/src/billing/subscription.ts | 209 ---
.../src/breadcrumbs/breadcrumbs.stories.tsx | 2 +-
packages/ui/src/breadcrumbs/breadcrumbs.tsx | 18 +-
.../src/breadcrumbs/navigation-dropdown.tsx | 28 +-
.../navigation-search-dropdown.tsx | 22 +-
packages/ui/src/button/helper.tsx | 60 +-
packages/ui/src/button/toggle-switch.tsx | 28 +-
packages/ui/src/card/helper.tsx | 3 +-
.../ui/src/collapsible/collapsible-button.tsx | 11 +-
packages/ui/src/drag-handle.tsx | 5 +-
packages/ui/src/drop-indicator.tsx | 6 +-
packages/ui/src/dropdown/common/button.tsx | 2 +-
.../ui/src/dropdown/common/input-search.tsx | 6 +-
packages/ui/src/dropdown/common/loader.tsx | 2 +-
packages/ui/src/dropdown/common/options.tsx | 10 +-
packages/ui/src/dropdown/multi-select.tsx | 2 +-
packages/ui/src/dropdown/single-select.tsx | 2 +-
.../ui/src/dropdowns/context-menu/item.tsx | 22 +-
.../ui/src/dropdowns/context-menu/root.tsx | 2 +-
packages/ui/src/dropdowns/custom-menu.tsx | 38 +-
.../ui/src/dropdowns/custom-search-select.tsx | 36 +-
packages/ui/src/dropdowns/custom-select.tsx | 20 +-
packages/ui/src/favorite-star.tsx | 4 +-
packages/ui/src/form-fields/checkbox.tsx | 12 +-
.../ui/src/form-fields/input-color-picker.tsx | 101 +-
packages/ui/src/form-fields/input.tsx | 8 +-
.../ui/src/form-fields/password/helper.tsx | 8 +-
.../ui/src/form-fields/password/indicator.tsx | 10 +-
.../form-fields/password/password-input.tsx | 6 +-
packages/ui/src/form-fields/root.tsx | 6 +-
packages/ui/src/form-fields/textarea.tsx | 6 +-
packages/ui/src/header/helper.tsx | 8 +-
packages/ui/src/index.ts | 1 -
packages/ui/src/link/block.tsx | 16 +-
packages/ui/src/loader.tsx | 4 +-
packages/ui/src/modals/alert-modal.tsx | 12 +-
packages/ui/src/modals/modal-core.tsx | 4 +-
packages/ui/src/oauth/oauth-button.tsx | 6 +-
packages/ui/src/oauth/oauth-options.tsx | 6 +-
.../ui/src/popovers/popover-menu.stories.tsx | 4 +-
packages/ui/src/popovers/popover-menu.tsx | 2 +-
packages/ui/src/popovers/popover.stories.tsx | 10 +-
packages/ui/src/popovers/popover.tsx | 2 +-
.../progress/circular-progress-indicator.tsx | 4 +-
.../progress/linear-progress-indicator.tsx | 8 +-
packages/ui/src/spinners/circular-spinner.tsx | 2 +-
packages/ui/src/tables/table.stories.tsx | 2 +-
packages/ui/src/tables/table.tsx | 8 +-
packages/ui/src/tabs/tab-list.tsx | 16 +-
packages/ui/src/tag/helper.tsx | 2 +-
packages/ui/src/tooltip/tooltip.tsx | 4 +-
packages/ui/src/typography/sub-heading.tsx | 2 +-
packages/ui/src/utils/classname.tsx | 6 +-
packages/ui/styles/globals.css | 697 +---------
packages/ui/tailwind.config.js | 5 -
packages/utils/package.json | 2 +-
packages/utils/src/common.ts | 56 +-
pnpm-lock.yaml | 1081 ++++++++-------
1342 files changed, 13783 insertions(+), 14675 deletions(-)
create mode 100644 AGENTS.md
delete mode 100644 apps/admin/postcss.config.cjs
create mode 100644 apps/admin/postcss.config.js
delete mode 100644 apps/admin/tailwind.config.cjs
delete mode 100644 apps/space/postcss.config.cjs
create mode 100644 apps/space/postcss.config.js
delete mode 100644 apps/space/tailwind.config.cjs
rename apps/web/ce/components/issues/issue-details/{sidebar.tsx => sidebar}/date-alert.tsx (100%)
create mode 100644 apps/web/core/components/common/layout/sidebar/property-list-item.tsx
create mode 100644 apps/web/core/components/issues/issue-detail/identifier-text.tsx
delete mode 100644 apps/web/postcss.config.cjs
create mode 100644 apps/web/postcss.config.js
delete mode 100644 apps/web/tailwind.config.cjs
delete mode 100644 packages/editor/src/styles/tailwind.css
delete mode 100644 packages/editor/tailwind.config.js
create mode 100644 packages/propel/.storybook/tailwind.css
create mode 100644 packages/propel/src/badge/badge.stories.tsx
create mode 100644 packages/propel/src/badge/badge.tsx
create mode 100644 packages/propel/src/badge/helper.tsx
create mode 100644 packages/propel/src/badge/index.ts
create mode 100644 packages/propel/src/design-system/design-system-philosophy.stories.tsx
create mode 100644 packages/propel/src/icon-button/helper.tsx
create mode 100644 packages/propel/src/icon-button/icon-button.stories.tsx
create mode 100644 packages/propel/src/icon-button/icon-button.tsx
create mode 100644 packages/propel/src/icon-button/index.ts
create mode 100644 packages/propel/src/icons/actions/copy-link.tsx
create mode 100644 packages/propel/src/icons/properties/label-filled-icon.tsx
delete mode 100644 packages/propel/src/styles/fonts/Inter/LICENSE
delete mode 100644 packages/propel/src/styles/fonts/Inter/inter-v13-latin-200.woff2
delete mode 100644 packages/propel/src/styles/fonts/Inter/inter-v13-latin-300.woff2
delete mode 100644 packages/propel/src/styles/fonts/Inter/inter-v13-latin-500.woff2
delete mode 100644 packages/propel/src/styles/fonts/Inter/inter-v13-latin-600.woff2
delete mode 100644 packages/propel/src/styles/fonts/Inter/inter-v13-latin-700.woff2
delete mode 100644 packages/propel/src/styles/fonts/Inter/inter-v13-latin-800.woff2
delete mode 100644 packages/propel/src/styles/fonts/Inter/inter-v13-latin-regular.woff2
delete mode 100644 packages/propel/src/styles/fonts/index.css
delete mode 100644 packages/propel/tailwind.config.ts
create mode 100644 packages/tailwind-config/AGENTS.md
create mode 100644 packages/tailwind-config/animations.css
delete mode 100644 packages/tailwind-config/global.css
create mode 100644 packages/tailwind-config/index.css
delete mode 100644 packages/tailwind-config/tailwind.config.js
create mode 100644 packages/tailwind-config/variables.css
create mode 100644 packages/types/src/issues/issue-identifier.ts
create mode 100644 packages/ui/src/avatar/helper.tsx
delete mode 100644 packages/ui/src/billing/index.ts
delete mode 100644 packages/ui/src/billing/subscription.ts
delete mode 100644 packages/ui/tailwind.config.js
diff --git a/.gitignore b/.gitignore
index f0093a0e68a..e2e6441ba3c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -105,10 +105,8 @@ CLAUDE.md
build/
.react-router/
-AGENTS.md
build/
.react-router/
-AGENTS.md
temp/
scripts/
diff --git a/AGENTS.md b/AGENTS.md
new file mode 100644
index 00000000000..dc76d8ce592
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1,24 @@
+# Agent Development Guide
+
+## Commands
+
+- `pnpm dev` - Start all dev servers (web:3000, admin:3001)
+- `pnpm build` - Build all packages and apps
+- `pnpm check` - Run all checks (format, lint, types)
+- `pnpm check:lint` - ESLint across all packages
+- `pnpm check:types` - TypeScript type checking
+- `pnpm fix` - Auto-fix format and lint issues
+- `pnpm turbo run --filter=` - Target specific package/app
+- `pnpm --filter=@plane/ui storybook` - Start Storybook on port 6006
+
+## Code Style
+
+- **Imports**: Use `workspace:*` for internal packages, `catalog:` for external deps
+- **TypeScript**: Strict mode enabled, all files must be typed
+- **Formatting**: Prettier with Tailwind plugin, run `pnpm fix:format`
+- **Linting**: ESLint with shared config, max warnings vary by package
+- **Naming**: camelCase for variables/functions, PascalCase for components/types
+- **Error Handling**: Use try-catch with proper error types, log errors appropriately
+- **State Management**: MobX stores in `packages/shared-state`, reactive patterns
+- **Testing**: All features require unit tests, use existing test framework per package
+- **Components**: Build in `@plane/ui` with Storybook for isolated development
diff --git a/apps/admin/app/(all)/(dashboard)/ai/form.tsx b/apps/admin/app/(all)/(dashboard)/ai/form.tsx
index 568289033f1..3cb96a454c2 100644
--- a/apps/admin/app/(all)/(dashboard)/ai/form.tsx
+++ b/apps/admin/app/(all)/(dashboard)/ai/form.tsx
@@ -42,7 +42,7 @@ export function InstanceAIForm(props: IInstanceAIForm) {
Learn more
@@ -63,7 +63,7 @@ export function InstanceAIForm(props: IInstanceAIForm) {
here.
@@ -94,8 +94,8 @@ export function InstanceAIForm(props: IInstanceAIForm) {
-
OpenAI
-
If you use ChatGPT, this is for you.
+
OpenAI
+
If you use ChatGPT, this is for you.
{aiFormFields.map((field) => (
@@ -114,12 +114,12 @@ export function InstanceAIForm(props: IInstanceAIForm) {
-
-