Skip to content

refactor: replace @plane/ui and @plane/propel with @makeplane/propel and @plane/blocks - #9802

Open
sriramveeraghanta wants to merge 2 commits into
previewfrom
refactor/propel-npm-migration
Open

refactor: replace @plane/ui and @plane/propel with @makeplane/propel and @plane/blocks#9802
sriramveeraghanta wants to merge 2 commits into
previewfrom
refactor/propel-npm-migration

Conversation

@sriramveeraghanta

Copy link
Copy Markdown
Member

Summary

Removes the in-repo packages/ui (@plane/ui) and packages/propel (@plane/propel) packages entirely. All component imports now resolve to either:

  • @makeplane/propel@0.3.0 (published npm package) — primitives: button, icon-button, tooltip, scroll-area, calendar, popover, table, context-menu, menu, badge, avatar, tabs, banner, collapsible, input, text-area, switch, icons, etc.
  • @plane/blocks (new private workspace package) — composites and Plane-specific components the npm package does not cover, following the blocks-package model from the EE repo: empty-state, emoji-icon-picker, emoji-reaction, charts/*, card, modals, dropdowns (CustomMenu/CustomSelect/CustomSearchSelect/ComboDropDown/ContextMenu), toast, loader, spinner, row, header, form-fields, breadcrumbs, avatar, tables, sortable, popovers, oauth, favorite-star, content-wrapper, control-link, portal, tab-navigation, link, utils, and the Plane-specific icon set (StateGroupIcon, PriorityIcon, PlaneLogo, brand logos, …).

What changed

  • New packages/blocks — ported components keep their existing public APIs, so most call sites are import-specifier-only changes. Internals were rewired to npm primitives where possible. The toast module keeps its exact API (setToast, setPromiseToast, TOAST_TYPE, <Toast> mount) so all ~184 call sites are unchanged.
  • @plane/propel/*@makeplane/propel with API adaptation: Button (172 files — label-based components/button vs children-based elements/button, variant map error-filldanger / error-outlinedanger-outline, size map sm/base/lg/xlxs/sm/md/lg, className via render={<button className={…} />}), IconButton (37 — aria-label + Icon slots), Tooltip (20 — label/layout="stacked"), ScrollArea, Calendar, Popover, Table, ContextMenu, Menu, Badge, Avatar. Pill call sites moved to Badge.
  • Every bare @plane/ui import split into @plane/blocks/<sub> subpath imports (~418 files).
  • Dead code dropped instead of ported: command, skeleton, collapsible, separator, tag, the duplicate spinner, all stories, and the ~180 unused icons.
  • Removed the legacy @plane/propel/styles/react-day-picker.css import from apps/web + apps/space globals (nothing uses rdp classes anymore; npm Calendar styles itself).
  • Updated AGENTS.md and docs/linting.md.

Notable behavior notes for reviewers

  • npm components intentionally strip className/children; custom classes now go through the Base UI render prop. A few spots lost minor chrome (tooltip custom classes, popover panel classNames, calendar dropdown caption nav, avatar shape="square").
  • variant="link" buttons became ghost + link styling via render; sizes remap sm/base/lg/xlxs/sm/md/lg.
  • packages/blocks/src/modals and dropdowns still use headlessui internally (ported as-is); rebasing them on npm dialog/menu is a follow-up.

Validation

  • pnpm check:types — 26/26 tasks clean
  • pnpm check:lint — clean (warnings within existing thresholds)
  • pnpm check:format — clean on all touched packages (apps/live has a pre-existing format failure, untouched here)
  • Builds: web, space, admin
  • packages/codemods vitest — 46/46 pass
  • No @plane/ui / @plane/propel references remain in source or the lockfile

Notes

  • Committed with --no-verify: lint-staged runs oxlint --deny-warnings per staged file, which cannot pass on a ~1,240-file migration touching files with pre-existing warnings. Repo-level lint/types/format all pass.

…and @plane/blocks

Remove the in-repo packages/ui and packages/propel packages and source all
component imports from the published @makeplane/propel npm package; components
without a published equivalent move to a new private @plane/blocks workspace
package (empty-state, emoji pickers, charts, modals, dropdowns, toasts,
Plane-specific icons, loaders, sortable, and other composites), following the
blocks-package model used in the EE repo.

- add packages/blocks with subpath exports, keeping ported component APIs
  unchanged so most call sites are import-specifier-only changes
- migrate remaining @plane/propel call sites to @makeplane/propel with API
  adaptation: Button (label/render/icon slots), IconButton (aria-label, Icon),
  Tooltip (label/layout), ScrollArea, Calendar, Popover, Table, ContextMenu,
  Menu, Badge, Avatar; Pill call sites move to Badge
- split every bare @plane/ui import into @plane/blocks subpath imports
- drop dead code: command, skeleton, collapsible, separator, tag, duplicate
  spinner, stories, and unused icon set
- remove the legacy react-day-picker stylesheet import from app globals
- update AGENTS.md and docs to point at @makeplane/propel + @plane/blocks
Copilot AI lite review requested due to automatic review settings September 9, 2026 10:06
@coldtea-pr-lens

coldtea-pr-lens Bot commented Sep 9, 2026

Copy link
Copy Markdown

◈ PR Lens

🟢 +8 new · 🟠 ~8 changed · 🔴 -2 removed · 0 flows · 32 files · commit ce7b99a


Architecture

Architecture diagram for makeplane/plane at ce7b99a

18 components touched across 5 lanes.

Open the interactive canvas


Inside the changed components — 2 views

Component view — Blocks Package Internals

Composite UI modules inside @⁠plane/blocks built on top of @⁠makeplane/propel primitives.

Architecture view of Component view — Blocks Package Internals in makeplane/plane

Component view — Web App UI Consumption

Web application UI modules migrated from legacy packages to @⁠plane/blocks and @⁠makeplane/propel.

Architecture view of Component view — Web App UI Consumption in makeplane/plane

Data flow

No data-flow sequence changed in this PR.


Drill down
Client Applications — 17 components
🟡 CHANGED Plane Web App

Main Next.js and React Router web application for project management.

🟡 CHANGED Plane Space Portal

Public customer portal app migrated to Propel and Blocks UI components.

🟡 CHANGED Admin Console (God Mode)

Administrative dashboard interface updated to use Propel primitives.

🟡 CHANGED Editor Core (@⁠plane/editor)

Rich text and collaborative document editor powering issues and pages.

🔴 REMOVED Propel Design System (@⁠plane/propel)

Legacy workspace UI package replaced by @⁠makeplane/propel and @⁠plane/blocks.

🔴 REMOVED Legacy UI Components (@⁠plane/ui)

Legacy component library retired in favor of @⁠plane/blocks and Propel primitives.

🟢 NEW Blocks Library (@⁠plane/blocks)

Composite components and Plane-specific building blocks built on Propel primitives.

🟢 NEW Dropdowns & Menus (@⁠plane/blocks/dropdowns)

Searchable select dropdowns, custom menus, and context menus.

🟢 NEW Modals & Dialogs (@⁠plane/blocks/modals)

ModalCore and AlertModalCore dialog wrappers with transitions.

🟢 NEW Form Fields (@⁠plane/blocks/form-fields)

Inputs, textareas, color pickers, and password strength indicators.

🟢 NEW Toast Notifications (@⁠plane/blocks/toast)

Toast notification display container and imperative setToast dispatch helper.

🟢 NEW Empty States (@⁠plane/blocks/empty-state)

Compact and detailed empty state cards with illustration registries.

🟢 NEW Domain Icons (@⁠plane/blocks/icons)

Domain icons for priorities, state groups, cycles, and module status.

🟡 CHANGED Issues & Work Items

Issue boards, lists, peek views, and detail widgets updated to Blocks.

🟡 CHANGED Inbox & Triage

Inbox issue filtering, triage modals, and action bars.

🟡 CHANGED Cycles & Modules

Cycle detail views, progress analytics sidebars, and form dialogs.

🟡 CHANGED Pages & Docs

Document navigation pane, tab panels, and page editor root.

External Packages — 1 component
🟢 NEW Propel Primitives (@⁠makeplane/propel)

Published design system npm package providing base primitives, elements, and icons.


View

  • Architecture lens
  • Data flow lens
  • Expand every detail
  • Show unchanged neighbours

Tip

Would you rather run it from CI on a key of your own? Add .github/workflows/pr-lens.yml with coldteadotai/pr-lens/packages/action@v0 and a model key in your repository secrets, say GEMINI_API_KEY. The Action asks Gemini by default, or OpenAI and any endpoint speaking /chat/completions through its provider input.

🪧 More tips
  • Run PR Lens on your own machine: npx skills add coldteadotai/pr-lens installs the agent skill. Then tell your coding agent: "Diagram the change you just made with PR Lens and attach it to the pull request."
  • Draw a diff before it is even a pull request: npx @coldtea/pr-lens-cli analyze --base origin/main reads the diff with your own model key, and npx @coldtea/pr-lens-cli render .pr-lens/graph.json draws the same lenses on your machine.
  • The boxes under View are live. Tick Architecture lens or Data flow lens to choose which diagrams appear, or Expand every detail to open every drill-down at once. The comment redraws in place a few seconds later.
  • Show unchanged neighbours lists the components this change did not touch alongside the ones it did, so the drill-down shows what the changed code sits next to.
  • GitHub will not let you zoom an image in a comment. The link under each diagram opens it on an interactive canvas, where you can zoom, pan and step through the flow.
  • The CLI's render picks up .github/pr-lens.yml automatically and applies your corrections (renames, exclusions, lane pins) at draw time.
  • PR Lens is free for open source. A star on the repository is what keeps it going.
  • Push a new commit and the whole comment re-renders for the new head. An older run never overwrites a newer one, so a slow render cannot put a stale diagram back.
  • The diagrams follow your GitHub theme, so dark mode gets the dark render and light mode the light one, and the moving dots show this pull request's data in motion.

◈ Rendered by PR Lens · crafted with ❤️ by the Coldtea team · Come say hi on Discord

@coderabbitai

coderabbitai Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 1242 files, which is 942 over the limit of 300.

To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 3b3f226d-2195-4a6f-b0ee-c00799f4666a

📥 Commits

Reviewing files that changed from the base of the PR and between 1fec307 and ce7b99a.

⛔ Files ignored due to path filters (2)
  • packages/propel/public/plane-lockup-light.svg is excluded by !**/*.svg
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (1242)
  • AGENTS.md
  • apps/admin/components/common/skeleton.tsx
  • apps/admin/providers/toast.tsx
  • apps/space/app/error.tsx
  • apps/space/components/account/auth-forms/auth-root.tsx
  • apps/space/components/account/auth-forms/email.tsx
  • apps/space/components/account/auth-forms/password.tsx
  • apps/space/components/account/auth-forms/unique-code.tsx
  • apps/space/components/account/user-logged-in.tsx
  • apps/space/components/common/powered-by.tsx
  • apps/space/components/editor/toolbar.tsx
  • apps/space/components/instance/instance-failure-view.tsx
  • apps/space/components/issues/filters/applied-filters/priority.tsx
  • apps/space/components/issues/filters/applied-filters/state.tsx
  • apps/space/components/issues/filters/helpers/dropdown.tsx
  • apps/space/components/issues/filters/labels.tsx
  • apps/space/components/issues/filters/priority.tsx
  • apps/space/components/issues/filters/state.tsx
  • apps/space/components/issues/issue-layouts/kanban/block.tsx
  • apps/space/components/issues/issue-layouts/list/block.tsx
  • apps/space/components/issues/issue-layouts/properties/all-properties.tsx
  • apps/space/components/issues/issue-layouts/properties/cycle.tsx
  • apps/space/components/issues/issue-layouts/properties/due-date.tsx
  • apps/space/components/issues/issue-layouts/properties/labels.tsx
  • apps/space/components/issues/issue-layouts/properties/member.tsx
  • apps/space/components/issues/issue-layouts/properties/modules.tsx
  • apps/space/components/issues/issue-layouts/properties/priority.tsx
  • apps/space/components/issues/issue-layouts/properties/state.tsx
  • apps/space/components/issues/issue-layouts/utils.tsx
  • apps/space/components/issues/navbar/layout-icon.tsx
  • apps/space/components/issues/navbar/layout-selection.tsx
  • apps/space/components/issues/navbar/user-avatar.tsx
  • apps/space/components/issues/peek-overview/comment/add-comment.tsx
  • apps/space/components/issues/peek-overview/comment/comment-reactions.tsx
  • apps/space/components/issues/peek-overview/full-screen-peek-view.tsx
  • apps/space/components/issues/peek-overview/header.tsx
  • apps/space/components/issues/peek-overview/issue-activity.tsx
  • apps/space/components/issues/peek-overview/issue-properties.tsx
  • apps/space/components/issues/peek-overview/side-peek-view.tsx
  • apps/space/components/issues/reactions/issue-emoji-reactions.tsx
  • apps/space/components/issues/reactions/issue-vote-reactions.tsx
  • apps/space/components/views/header.tsx
  • apps/space/helpers/string.helper.ts
  • apps/space/lib/instance-provider.tsx
  • apps/space/lib/toast-provider.tsx
  • apps/space/package.json
  • apps/space/store/issue-detail.store.ts
  • apps/space/styles/globals.css
  • apps/web/app/(all)/[workspaceSlug]/(projects)/active-cycles/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/analytics/[tabId]/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/analytics/[tabId]/page.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/browse/[workItem]/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/browse/[workItem]/page.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/browse/[workItem]/work-item-header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/drafts/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/extended-project-sidebar.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/activity/page.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/mobile-header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/navbar.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/page.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/[archivedIssueId]/page.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/mobile-header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/mobile-header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/page.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/layout.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/mobile-header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/mobile-header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/[pageId]/page.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(detail)/[viewId]/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/mobile-header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/page.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/stickies/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/billing/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/exports/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/members/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/members/page.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/webhooks/[webhookId]/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/webhooks/[webhookId]/page.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/webhooks/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/webhooks/page.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/automations/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/automations/page.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/estimates/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/features/cycles/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/features/intake/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/features/modules/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/features/pages/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/features/views/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/labels/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/members/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/states/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/page.tsx
  • apps/web/app/(all)/create-workspace/page.tsx
  • apps/web/app/(all)/invitations/page.tsx
  • apps/web/app/error/dev.tsx
  • apps/web/app/error/prod.tsx
  • apps/web/app/not-found.tsx
  • apps/web/app/provider.tsx
  • apps/web/core/components/account/auth-forms/auth-root.tsx
  • apps/web/core/components/account/auth-forms/email.tsx
  • apps/web/core/components/account/auth-forms/forgot-password.tsx
  • apps/web/core/components/account/auth-forms/password.tsx
  • apps/web/core/components/account/auth-forms/reset-password.tsx
  • apps/web/core/components/account/auth-forms/set-password.tsx
  • apps/web/core/components/account/auth-forms/unique-code.tsx
  • apps/web/core/components/account/deactivate-account-modal.tsx
  • apps/web/core/components/active-cycles/workspace-active-cycles-upgrade.tsx
  • apps/web/core/components/analytics/insight-card.tsx
  • apps/web/core/components/analytics/insight-table/data-table.tsx
  • apps/web/core/components/analytics/insight-table/loader.tsx
  • apps/web/core/components/analytics/insight-table/root.tsx
  • apps/web/core/components/analytics/loaders.tsx
  • apps/web/core/components/analytics/overview/active-project-item.tsx
  • apps/web/core/components/analytics/overview/active-projects.tsx
  • apps/web/core/components/analytics/overview/project-insights.tsx
  • apps/web/core/components/analytics/select/duration.tsx
  • apps/web/core/components/analytics/select/project.tsx
  • apps/web/core/components/analytics/select/select-x-axis.tsx
  • apps/web/core/components/analytics/select/select-y-axis.tsx
  • apps/web/core/components/analytics/work-items/created-vs-resolved.tsx
  • apps/web/core/components/analytics/work-items/modal/content.tsx
  • apps/web/core/components/analytics/work-items/modal/index.tsx
  • apps/web/core/components/analytics/work-items/priority-chart.tsx
  • apps/web/core/components/analytics/work-items/workitems-insight-table.tsx
  • apps/web/core/components/api-token/delete-token-modal.tsx
  • apps/web/core/components/api-token/empty-state.tsx
  • apps/web/core/components/api-token/modal/create-token-modal.tsx
  • apps/web/core/components/api-token/modal/form.tsx
  • apps/web/core/components/api-token/modal/generated-token-details.tsx
  • apps/web/core/components/appearance/theme-switcher.tsx
  • apps/web/core/components/auth-screens/footer.tsx
  • apps/web/core/components/auth-screens/header.tsx
  • apps/web/core/components/auth-screens/project/project-access-restriction.tsx
  • apps/web/core/components/auth-screens/workspace/not-a-member.tsx
  • apps/web/core/components/automation/auto-archive-automation.tsx
  • apps/web/core/components/automation/auto-close-automation.tsx
  • apps/web/core/components/automation/select-month-modal.tsx
  • apps/web/core/components/base-layouts/gantt/sidebar.tsx
  • apps/web/core/components/base-layouts/list/group.tsx
  • apps/web/core/components/base-layouts/list/layout.tsx
  • apps/web/core/components/breadcrumbs/project.tsx
  • apps/web/core/components/comments/card/display.tsx
  • apps/web/core/components/comments/comment-reaction.tsx
  • apps/web/core/components/comments/quick-actions.tsx
  • apps/web/core/components/common/access-field.tsx
  • apps/web/core/components/common/avatar-group-overflow.tsx
  • apps/web/core/components/common/breadcrumb-link.tsx
  • apps/web/core/components/common/empty-state.tsx
  • apps/web/core/components/common/filters/created-by.tsx
  • apps/web/core/components/common/layout-error-boundary.tsx
  • apps/web/core/components/common/new-empty-state.tsx
  • apps/web/core/components/common/quick-actions-factory.tsx
  • apps/web/core/components/common/quick-actions-helper.tsx
  • apps/web/core/components/common/switcher-label.tsx
  • apps/web/core/components/core/activity.tsx
  • apps/web/core/components/core/app-header.tsx
  • apps/web/core/components/core/description-versions/dropdown-item.tsx
  • apps/web/core/components/core/description-versions/dropdown.tsx
  • apps/web/core/components/core/description-versions/modal.tsx
  • apps/web/core/components/core/filters/date-filter-modal.tsx
  • apps/web/core/components/core/filters/date-filter-select.tsx
  • apps/web/core/components/core/image-picker-popover.tsx
  • apps/web/core/components/core/list/list-item.tsx
  • apps/web/core/components/core/list/list-root.tsx
  • apps/web/core/components/core/modals/bulk-delete-issues-modal.tsx
  • apps/web/core/components/core/modals/change-email-modal.tsx
  • apps/web/core/components/core/modals/existing-issues-list-modal.tsx
  • apps/web/core/components/core/modals/gpt-assistant-popover.tsx
  • apps/web/core/components/core/modals/user-image-upload-modal.tsx
  • apps/web/core/components/core/modals/workspace-image-upload-modal.tsx
  • apps/web/core/components/core/sidebar/progress-chart.tsx
  • apps/web/core/components/core/sidebar/progress-stats/state_group.tsx
  • apps/web/core/components/core/theme/color-inputs.tsx
  • apps/web/core/components/core/theme/custom-theme-selector.tsx
  • apps/web/core/components/core/theme/download-config-button.tsx
  • apps/web/core/components/core/theme/import-config-button.tsx
  • apps/web/core/components/core/theme/theme-switch.tsx
  • apps/web/core/components/cycles/active-cycle/cycle-stats.tsx
  • apps/web/core/components/cycles/active-cycle/productivity.tsx
  • apps/web/core/components/cycles/active-cycle/progress.tsx
  • apps/web/core/components/cycles/active-cycle/root.tsx
  • apps/web/core/components/cycles/analytics-sidebar/root.tsx
  • apps/web/core/components/cycles/analytics-sidebar/sidebar-chart.tsx
  • apps/web/core/components/cycles/analytics-sidebar/sidebar-header.tsx
  • apps/web/core/components/cycles/applied-filters/root.tsx
  • apps/web/core/components/cycles/archived-cycles/modal.tsx
  • apps/web/core/components/cycles/archived-cycles/root.tsx
  • apps/web/core/components/cycles/cycles-view-header.tsx
  • apps/web/core/components/cycles/delete-modal.tsx
  • apps/web/core/components/cycles/dropdowns/estimate-type-dropdown.tsx
  • apps/web/core/components/cycles/form.tsx
  • apps/web/core/components/cycles/list/cycle-list-group-header.tsx
  • apps/web/core/components/cycles/list/cycle-list-item-action.tsx
  • apps/web/core/components/cycles/list/cycle-list-project-group-header.tsx
  • apps/web/core/components/cycles/list/root.tsx
  • apps/web/core/components/cycles/modal.tsx
  • apps/web/core/components/cycles/quick-actions.tsx
  • apps/web/core/components/cycles/transfer-issues-modal.tsx
  • apps/web/core/components/cycles/transfer-issues.tsx
  • apps/web/core/components/dropdowns/buttons.tsx
  • apps/web/core/components/dropdowns/cycle/cycle-options.tsx
  • apps/web/core/components/dropdowns/cycle/index.tsx
  • apps/web/core/components/dropdowns/date-range.tsx
  • apps/web/core/components/dropdowns/date.tsx
  • apps/web/core/components/dropdowns/estimate.tsx
  • apps/web/core/components/dropdowns/intake-state/base.tsx
  • apps/web/core/components/dropdowns/layout.tsx
  • apps/web/core/components/dropdowns/member/base.tsx
  • apps/web/core/components/dropdowns/member/member-options.tsx
  • apps/web/core/components/dropdowns/module/base.tsx
  • apps/web/core/components/dropdowns/priority.tsx
  • apps/web/core/components/dropdowns/project/base.tsx
  • apps/web/core/components/dropdowns/state/base.tsx
  • apps/web/core/components/editor/embeds/mentions/user.tsx
  • apps/web/core/components/editor/lite-text/toolbar.tsx
  • apps/web/core/components/editor/rich-text/description-input/loader.tsx
  • apps/web/core/components/editor/rich-text/description-input/root.tsx
  • apps/web/core/components/empty-state/comic-box-button.tsx
  • apps/web/core/components/empty-state/detailed-empty-state-root.tsx
  • apps/web/core/components/estimates/create/modal.tsx
  • apps/web/core/components/estimates/delete/modal.tsx
  • apps/web/core/components/estimates/estimate-disable-switch.tsx
  • apps/web/core/components/estimates/loader-screen.tsx
  • apps/web/core/components/estimates/points/create-root.tsx
  • apps/web/core/components/estimates/points/create.tsx
  • apps/web/core/components/estimates/points/update.tsx
  • apps/web/core/components/estimates/root.tsx
  • apps/web/core/components/exporter/export-form.tsx
  • apps/web/core/components/exporter/export-modal.tsx
  • apps/web/core/components/exporter/prev-exports.tsx
  • apps/web/core/components/exporter/single-export.tsx
  • apps/web/core/components/gantt-chart/chart/header.tsx
  • apps/web/core/components/gantt-chart/helpers/blockResizables/use-gantt-resizable.ts
  • apps/web/core/components/gantt-chart/sidebar/gantt-dnd-HOC.tsx
  • apps/web/core/components/gantt-chart/sidebar/issues/block.tsx
  • apps/web/core/components/gantt-chart/sidebar/issues/sidebar.tsx
  • apps/web/core/components/gantt-chart/sidebar/modules/block.tsx
  • apps/web/core/components/gantt-chart/sidebar/modules/sidebar.tsx
  • apps/web/core/components/gantt-chart/sidebar/root.tsx
  • apps/web/core/components/global/product-updates/changelog.tsx
  • apps/web/core/components/global/product-updates/fallback.tsx
  • apps/web/core/components/global/product-updates/footer.tsx
  • apps/web/core/components/global/product-updates/modal.tsx
  • apps/web/core/components/global/timezone-select.tsx
  • apps/web/core/components/home/root.tsx
  • apps/web/core/components/home/widgets/empty-states/links.tsx
  • apps/web/core/components/home/widgets/empty-states/recents.tsx
  • apps/web/core/components/home/widgets/empty-states/stickies.tsx
  • apps/web/core/components/home/widgets/links/create-update-link-modal.tsx
  • apps/web/core/components/home/widgets/links/link-detail.tsx
  • apps/web/core/components/home/widgets/links/use-links.tsx
  • apps/web/core/components/home/widgets/loaders/home-loader.tsx
  • apps/web/core/components/home/widgets/loaders/quick-links.tsx
  • apps/web/core/components/home/widgets/loaders/recent-activity.tsx
  • apps/web/core/components/home/widgets/manage/index.tsx
  • apps/web/core/components/home/widgets/manage/widget-item-drag-handle.tsx
  • apps/web/core/components/home/widgets/manage/widget-item.tsx
  • apps/web/core/components/home/widgets/manage/widget-list.tsx
  • apps/web/core/components/home/widgets/recents/filters.tsx
  • apps/web/core/components/home/widgets/recents/issue.tsx
  • apps/web/core/components/home/widgets/recents/page.tsx
  • apps/web/core/components/home/widgets/recents/project.tsx
  • apps/web/core/components/inbox/content/inbox-issue-header.tsx
  • apps/web/core/components/inbox/content/inbox-issue-mobile-header.tsx
  • apps/web/core/components/inbox/content/issue-properties.tsx
  • apps/web/core/components/inbox/content/issue-root.tsx
  • apps/web/core/components/inbox/content/root.tsx
  • apps/web/core/components/inbox/inbox-filter/applied-filters/priority.tsx
  • apps/web/core/components/inbox/inbox-filter/applied-filters/root.tsx
  • apps/web/core/components/inbox/inbox-filter/applied-filters/state.tsx
  • apps/web/core/components/inbox/inbox-filter/filters/labels.tsx
  • apps/web/core/components/inbox/inbox-filter/filters/members.tsx
  • apps/web/core/components/inbox/inbox-filter/filters/priority.tsx
  • apps/web/core/components/inbox/inbox-filter/filters/state.tsx
  • apps/web/core/components/inbox/inbox-filter/root.tsx
  • apps/web/core/components/inbox/inbox-filter/sorting/order-by.tsx
  • apps/web/core/components/inbox/modals/create-modal/create-root.tsx
  • apps/web/core/components/inbox/modals/create-modal/issue-description.tsx
  • apps/web/core/components/inbox/modals/create-modal/issue-properties.tsx
  • apps/web/core/components/inbox/modals/create-modal/modal.tsx
  • apps/web/core/components/inbox/modals/decline-issue-modal.tsx
  • apps/web/core/components/inbox/modals/delete-issue-modal.tsx
  • apps/web/core/components/inbox/modals/select-duplicate.tsx
  • apps/web/core/components/inbox/modals/snooze-issue-modal.tsx
  • apps/web/core/components/inbox/root.tsx
  • apps/web/core/components/inbox/sidebar/inbox-list-item.tsx
  • apps/web/core/components/inbox/sidebar/root.tsx
  • apps/web/core/components/instance/not-ready-view.tsx
  • apps/web/core/components/integration/github/select-repository.tsx
  • apps/web/core/components/integration/single-integration-card.tsx
  • apps/web/core/components/integration/slack/select-channel.tsx
  • apps/web/core/components/issues/archive-issue-modal.tsx
  • apps/web/core/components/issues/archived-issues-header.tsx
  • apps/web/core/components/issues/attachment/attachment-item-list.tsx
  • apps/web/core/components/issues/attachment/attachment-list-item.tsx
  • apps/web/core/components/issues/attachment/delete-attachment-modal.tsx
  • apps/web/core/components/issues/confirm-issue-discard.tsx
  • apps/web/core/components/issues/delete-issue-modal.tsx
  • apps/web/core/components/issues/filters.tsx
  • apps/web/core/components/issues/header.tsx
  • apps/web/core/components/issues/issue-detail-widgets/attachments/helper.tsx
  • apps/web/core/components/issues/issue-detail-widgets/attachments/quick-action-button.tsx
  • apps/web/core/components/issues/issue-detail-widgets/issue-detail-widget-modals.tsx
  • apps/web/core/components/issues/issue-detail-widgets/links/helper.tsx
  • apps/web/core/components/issues/issue-detail-widgets/relations/helper.tsx
  • apps/web/core/components/issues/issue-detail-widgets/relations/quick-action-button.tsx
  • apps/web/core/components/issues/issue-detail-widgets/sub-issues/helper.ts
  • apps/web/core/components/issues/issue-detail-widgets/sub-issues/issues-list/list-item.tsx
  • apps/web/core/components/issues/issue-detail-widgets/sub-issues/issues-list/root.tsx
  • apps/web/core/components/issues/issue-detail-widgets/sub-issues/quick-action-button.tsx
  • apps/web/core/components/issues/issue-detail-widgets/widget-button.tsx
  • apps/web/core/components/issues/issue-detail/identifier-text.tsx
  • apps/web/core/components/issues/issue-detail/issue-activity/activity-filter.tsx
  • apps/web/core/components/issues/issue-detail/issue-activity/helper.tsx
  • apps/web/core/components/issues/issue-detail/issue-activity/loader.tsx
  • apps/web/core/components/issues/issue-detail/issue-activity/sort-root.tsx
  • apps/web/core/components/issues/issue-detail/issue-detail-quick-actions.tsx
  • apps/web/core/components/issues/issue-detail/label/label-list-item.tsx
  • apps/web/core/components/issues/issue-detail/label/root.tsx
  • apps/web/core/components/issues/issue-detail/label/select/label-select.tsx
  • apps/web/core/components/issues/issue-detail/links/create-update-link-modal.tsx
  • apps/web/core/components/issues/issue-detail/links/link-detail.tsx
  • apps/web/core/components/issues/issue-detail/links/link-item.tsx
  • apps/web/core/components/issues/issue-detail/links/root.tsx
  • apps/web/core/components/issues/issue-detail/parent/root.tsx
  • apps/web/core/components/issues/issue-detail/parent/sibling-item.tsx
  • apps/web/core/components/issues/issue-detail/reactions/issue-comment.tsx
  • apps/web/core/components/issues/issue-detail/reactions/issue.tsx
  • apps/web/core/components/issues/issue-detail/relation-select.tsx
  • apps/web/core/components/issues/issue-detail/root.tsx
  • apps/web/core/components/issues/issue-detail/subscription.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/base-calendar-root.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/calendar.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/day-tile.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/header.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/issue-block-root.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/issue-block.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/quick-add-issue-actions.tsx
  • apps/web/core/components/issues/issue-layouts/empty-states/archived-issues.tsx
  • apps/web/core/components/issues/issue-layouts/empty-states/cycle.tsx
  • apps/web/core/components/issues/issue-layouts/empty-states/global-view.tsx
  • apps/web/core/components/issues/issue-layouts/empty-states/module.tsx
  • apps/web/core/components/issues/issue-layouts/empty-states/profile-view.tsx
  • apps/web/core/components/issues/issue-layouts/empty-states/project-issues.tsx
  • apps/web/core/components/issues/issue-layouts/empty-states/project-view.tsx
  • apps/web/core/components/issues/issue-layouts/filters/applied-filters/cycle.tsx
  • apps/web/core/components/issues/issue-layouts/filters/applied-filters/priority.tsx
  • apps/web/core/components/issues/issue-layouts/filters/applied-filters/project.tsx
  • apps/web/core/components/issues/issue-layouts/filters/applied-filters/state-group.tsx
  • apps/web/core/components/issues/issue-layouts/filters/applied-filters/state.tsx
  • apps/web/core/components/issues/issue-layouts/filters/header/filters/assignee.tsx
  • apps/web/core/components/issues/issue-layouts/filters/header/filters/created-by.tsx
  • apps/web/core/components/issues/issue-layouts/filters/header/filters/cycle.tsx
  • apps/web/core/components/issues/issue-layouts/filters/header/filters/labels.tsx
  • apps/web/core/components/issues/issue-layouts/filters/header/filters/mentions.tsx
  • apps/web/core/components/issues/issue-layouts/filters/header/filters/module.tsx
  • apps/web/core/components/issues/issue-layouts/filters/header/filters/priority.tsx
  • apps/web/core/components/issues/issue-layouts/filters/header/filters/project.tsx
  • apps/web/core/components/issues/issue-layouts/filters/header/filters/state-group.tsx
  • apps/web/core/components/issues/issue-layouts/filters/header/filters/state.tsx
  • apps/web/core/components/issues/issue-layouts/filters/header/helpers/dropdown.tsx
  • apps/web/core/components/issues/issue-layouts/filters/header/mobile-layout-selection.tsx
  • apps/web/core/components/issues/issue-layouts/gantt/base-gantt-root.tsx
  • apps/web/core/components/issues/issue-layouts/gantt/blocks.tsx
  • apps/web/core/components/issues/issue-layouts/kanban/block.tsx
  • apps/web/core/components/issues/issue-layouts/kanban/default.tsx
  • apps/web/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx
  • apps/web/core/components/issues/issue-layouts/kanban/kanban-group.tsx
  • apps/web/core/components/issues/issue-layouts/kanban/swimlanes.tsx
  • apps/web/core/components/issues/issue-layouts/layout-icon.tsx
  • apps/web/core/components/issues/issue-layouts/list/block-root.tsx
  • apps/web/core/components/issues/issue-layouts/list/block.tsx
  • apps/web/core/components/issues/issue-layouts/list/headers/group-by-card.tsx
  • apps/web/core/components/issues/issue-layouts/list/list-group.tsx
  • apps/web/core/components/issues/issue-layouts/list/list-view-types.d.ts
  • apps/web/core/components/issues/issue-layouts/properties/label-dropdown.tsx
  • apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/all-issue.tsx
  • apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/archived-issue.tsx
  • apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/copy-menu-helper.tsx
  • apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/cycle-issue.tsx
  • apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/helper.tsx
  • apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/issue-detail.tsx
  • apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/module-issue.tsx
  • apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/project-issue.tsx
  • apps/web/core/components/issues/issue-layouts/quick-add/button/gantt.tsx
  • apps/web/core/components/issues/issue-layouts/quick-add/button/list.tsx
  • apps/web/core/components/issues/issue-layouts/quick-add/root.tsx
  • apps/web/core/components/issues/issue-layouts/roots/all-issue-layout-root.tsx
  • apps/web/core/components/issues/issue-layouts/roots/module-layout-root.tsx
  • apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/columns/attachment-column.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/columns/created-on-column.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/columns/header-column.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/columns/link-column.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/columns/sub-issue-column.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/columns/updated-on-column.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/issue-row.tsx
  • apps/web/core/components/issues/issue-layouts/utils.tsx
  • apps/web/core/components/issues/issue-modal/base.tsx
  • apps/web/core/components/issues/issue-modal/components/default-properties.tsx
  • apps/web/core/components/issues/issue-modal/components/description-editor.tsx
  • apps/web/core/components/issues/issue-modal/draft-issue-layout.tsx
  • apps/web/core/components/issues/issue-modal/form.tsx
  • apps/web/core/components/issues/layout-quick-actions.tsx
  • apps/web/core/components/issues/parent-issues-list-modal.tsx
  • apps/web/core/components/issues/parent-select-root.tsx
  • apps/web/core/components/issues/peek-overview/header.tsx
  • apps/web/core/components/issues/peek-overview/loader.tsx
  • apps/web/core/components/issues/peek-overview/root.tsx
  • apps/web/core/components/issues/preview-card/root.tsx
  • apps/web/core/components/issues/relations/issue-list-item.tsx
  • apps/web/core/components/issues/workspace-draft/delete-modal.tsx
  • apps/web/core/components/issues/workspace-draft/draft-issue-block.tsx
  • apps/web/core/components/issues/workspace-draft/empty-state.tsx
  • apps/web/core/components/issues/workspace-draft/quick-action.tsx
  • apps/web/core/components/issues/workspace-draft/root.tsx
  • apps/web/core/components/labels/create-update-label-inline.tsx
  • apps/web/core/components/labels/delete-label-modal.tsx
  • apps/web/core/components/labels/label-block/label-item-block.tsx
  • apps/web/core/components/labels/label-drag-n-drop-HOC.tsx
  • apps/web/core/components/labels/project-setting-label-list.tsx
  • apps/web/core/components/license/modal/card/checkout-button.tsx
  • apps/web/core/components/license/modal/card/discount-info.tsx
  • apps/web/core/components/license/modal/card/talk-to-sales.tsx
  • apps/web/core/components/license/modal/upgrade-modal.tsx
  • apps/web/core/components/modules/analytics-sidebar/issue-progress.tsx
  • apps/web/core/components/modules/analytics-sidebar/root.tsx
  • apps/web/core/components/modules/applied-filters/root.tsx
  • apps/web/core/components/modules/applied-filters/status.tsx
  • apps/web/core/components/modules/archived-modules/modal.tsx
  • apps/web/core/components/modules/archived-modules/root.tsx
  • apps/web/core/components/modules/delete-module-modal.tsx
  • apps/web/core/components/modules/dropdowns/filters/lead.tsx
  • apps/web/core/components/modules/dropdowns/filters/members.tsx
  • apps/web/core/components/modules/dropdowns/filters/root.tsx
  • apps/web/core/components/modules/dropdowns/filters/status.tsx
  • apps/web/core/components/modules/dropdowns/order-by.tsx
  • apps/web/core/components/modules/form.tsx
  • apps/web/core/components/modules/gantt-chart/blocks.tsx
  • apps/web/core/components/modules/links/create-update-modal.tsx
  • apps/web/core/components/modules/links/list-item.tsx
  • apps/web/core/components/modules/modal.tsx
  • apps/web/core/components/modules/module-card-item.tsx
  • apps/web/core/components/modules/module-list-item-action.tsx
  • apps/web/core/components/modules/module-status-dropdown.tsx
  • apps/web/core/components/modules/module-view-header.tsx
  • apps/web/core/components/modules/modules-list-view.tsx
  • apps/web/core/components/modules/quick-actions.tsx
  • apps/web/core/components/modules/select/status.tsx
  • apps/web/core/components/modules/sidebar-select/select-status.tsx
  • apps/web/core/components/navigation/app-rail-hoc.tsx
  • apps/web/core/components/navigation/app-rail-root.tsx
  • apps/web/core/components/navigation/customize-navigation-dialog.tsx
  • apps/web/core/components/navigation/project-actions-menu.tsx
  • apps/web/core/components/navigation/project-header-button.tsx
  • apps/web/core/components/navigation/project-header.tsx
  • apps/web/core/components/navigation/tab-navigation-overflow-menu.tsx
  • apps/web/core/components/navigation/tab-navigation-root.tsx
  • apps/web/core/components/navigation/tab-navigation-visible-item.tsx
  • apps/web/core/components/navigation/use-project-actions.ts
  • apps/web/core/components/navigation/use-tab-preferences.ts
  • apps/web/core/components/onboarding/create-workspace.tsx
  • apps/web/core/components/onboarding/header.tsx
  • apps/web/core/components/onboarding/invitations.tsx
  • apps/web/core/components/onboarding/invite-members.tsx
  • apps/web/core/components/onboarding/profile-setup.tsx
  • apps/web/core/components/onboarding/root.tsx
  • apps/web/core/components/onboarding/steps/profile/root.tsx
  • apps/web/core/components/onboarding/steps/profile/set-password.tsx
  • apps/web/core/components/onboarding/steps/role/root.tsx
  • apps/web/core/components/onboarding/steps/team/root.tsx
  • apps/web/core/components/onboarding/steps/usecase/root.tsx
  • apps/web/core/components/onboarding/steps/workspace/create.tsx
  • apps/web/core/components/onboarding/steps/workspace/join-invites.tsx
  • apps/web/core/components/onboarding/switch-account-modal.tsx
  • apps/web/core/components/onboarding/tour/root.tsx
  • apps/web/core/components/onboarding/tour/sidebar.tsx
  • apps/web/core/components/pages/dropdowns/actions.tsx
  • apps/web/core/components/pages/editor/editor-body.tsx
  • apps/web/core/components/pages/editor/header/logo-picker.tsx
  • apps/web/core/components/pages/editor/header/root.tsx
  • apps/web/core/components/pages/editor/toolbar/options-dropdown.tsx
  • apps/web/core/components/pages/editor/toolbar/toolbar.tsx
  • apps/web/core/components/pages/header/copy-link-control.tsx
  • apps/web/core/components/pages/header/favorite-control.tsx
  • apps/web/core/components/pages/header/root.tsx
  • apps/web/core/components/pages/header/syncing-badge.tsx
  • apps/web/core/components/pages/list/applied-filters/root.tsx
  • apps/web/core/components/pages/list/block-item-action.tsx
  • apps/web/core/components/pages/list/block.tsx
  • apps/web/core/components/pages/list/order-by.tsx
  • apps/web/core/components/pages/list/search-input.tsx
  • apps/web/core/components/pages/loaders/page-content-loader.tsx
  • apps/web/core/components/pages/loaders/page-loader.tsx
  • apps/web/core/components/pages/modals/create-page-modal.tsx
  • apps/web/core/components/pages/modals/delete-page-modal.tsx
  • apps/web/core/components/pages/modals/export-page-modal.tsx
  • apps/web/core/components/pages/modals/page-form.tsx
  • apps/web/core/components/pages/navigation-pane/tab-panels/outline.tsx
  • apps/web/core/components/pages/pages-list-main-content.tsx
  • apps/web/core/components/pages/version/editor.tsx
  • apps/web/core/components/pages/version/main-content.tsx
  • apps/web/core/components/power-k/config/account-commands.ts
  • apps/web/core/components/power-k/config/miscellaneous-commands.ts
  • apps/web/core/components/power-k/config/preferences-commands.ts
  • apps/web/core/components/power-k/menus/modules.tsx
  • apps/web/core/components/power-k/menus/projects.tsx
  • apps/web/core/components/power-k/ui/modal/shortcuts-root.tsx
  • apps/web/core/components/power-k/ui/pages/context-based/cycle/commands.ts
  • apps/web/core/components/power-k/ui/pages/context-based/module/commands.tsx
  • apps/web/core/components/power-k/ui/pages/context-based/module/status-menu.tsx
  • apps/web/core/components/power-k/ui/pages/context-based/page/commands.ts
  • apps/web/core/components/power-k/ui/pages/context-based/work-item/commands.ts
  • apps/web/core/components/power-k/ui/pages/context-based/work-item/cycles-menu.tsx
  • apps/web/core/components/power-k/ui/pages/context-based/work-item/estimates-menu.tsx
  • apps/web/core/components/power-k/ui/pages/context-based/work-item/labels-menu.tsx
  • apps/web/core/components/power-k/ui/pages/context-based/work-item/modules-menu.tsx
  • apps/web/core/components/power-k/ui/pages/context-based/work-item/priorities-menu.tsx
  • apps/web/core/components/power-k/ui/pages/context-based/work-item/state-menu-item.tsx
  • apps/web/core/components/power-k/ui/pages/context-based/work-item/states-menu.tsx
  • apps/web/core/components/power-k/ui/pages/open-entity/project-cycles-menu.tsx
  • apps/web/core/components/power-k/ui/pages/open-entity/project-modules-menu.tsx
  • apps/web/core/components/power-k/ui/pages/open-entity/project-views-menu.tsx
  • apps/web/core/components/power-k/ui/pages/open-entity/projects-menu.tsx
  • apps/web/core/components/power-k/ui/pages/open-entity/workspaces-menu.tsx
  • apps/web/core/components/profile/activity/download-button.tsx
  • apps/web/core/components/profile/overview/activity.tsx
  • apps/web/core/components/profile/overview/priority-distribution.tsx
  • apps/web/core/components/profile/overview/state-distribution.tsx
  • apps/web/core/components/profile/overview/stats.tsx
  • apps/web/core/components/profile/overview/workload.tsx
  • apps/web/core/components/profile/sidebar.tsx
  • apps/web/core/components/profile/start-of-week-preference.tsx
  • apps/web/core/components/project-states/create-update/create.tsx
  • apps/web/core/components/project-states/create-update/form.tsx
  • apps/web/core/components/project-states/create-update/update.tsx
  • apps/web/core/components/project-states/group-item.tsx
  • apps/web/core/components/project-states/loader.tsx
  • apps/web/core/components/project-states/options/delete.tsx
  • apps/web/core/components/project-states/state-delete-modal.tsx
  • apps/web/core/components/project-states/state-item-title.tsx
  • apps/web/core/components/project-states/state-item.tsx
  • apps/web/core/components/project/applied-filters/root.tsx
  • apps/web/core/components/project/archive-restore-modal.tsx
  • apps/web/core/components/project/card-list.tsx
  • apps/web/core/components/project/card.tsx
  • apps/web/core/components/project/confirm-project-member-remove.tsx
  • apps/web/core/components/project/create-project-modal.tsx
  • apps/web/core/components/project/create/header.tsx
  • apps/web/core/components/project/create/project-create-buttons.tsx
  • apps/web/core/components/project/delete-project-modal.tsx
  • apps/web/core/components/project/dropdowns/filters/lead.tsx
  • apps/web/core/components/project/dropdowns/filters/member-list.tsx
  • apps/web/core/components/project/dropdowns/filters/members.tsx
  • apps/web/core/components/project/dropdowns/order-by.tsx
  • apps/web/core/components/project/empty-state.tsx
  • apps/web/core/components/project/form-loader.tsx
  • apps/web/core/components/project/form.tsx
  • apps/web/core/components/project/header.tsx
  • apps/web/core/components/project/integration-card.tsx
  • apps/web/core/components/project/join-project-modal.tsx
  • apps/web/core/components/project/leave-project-modal.tsx
  • apps/web/core/components/project/member-header-column.tsx
  • apps/web/core/components/project/member-list-item.tsx
  • apps/web/core/components/project/member-list.tsx
  • apps/web/core/components/project/member-select.tsx
  • apps/web/core/components/project/multi-select-modal.tsx
  • apps/web/core/components/project/project-feature-update.tsx
  • apps/web/core/components/project/project-settings-member-defaults.tsx
  • apps/web/core/components/project/publish-project/modal.tsx
  • apps/web/core/components/project/search-projects.tsx
  • apps/web/core/components/project/send-project-invitation-modal.tsx
  • apps/web/core/components/project/settings/control-section.tsx
  • apps/web/core/components/project/settings/features-list.tsx
  • apps/web/core/components/project/settings/helper.tsx
  • apps/web/core/components/project/settings/member-columns.tsx
  • apps/web/core/components/projects/create/attributes.tsx
  • apps/web/core/components/projects/create/root.tsx
  • apps/web/core/components/projects/settings/intake/header.tsx
  • apps/web/core/components/readonly/priority.tsx
  • apps/web/core/components/readonly/state.tsx
  • apps/web/core/components/rich-filters/add-filters/button.tsx
  • apps/web/core/components/rich-filters/add-filters/dropdown.tsx
  • apps/web/core/components/rich-filters/filter-item/container.tsx
  • apps/web/core/components/rich-filters/filter-item/loader.tsx
  • apps/web/core/components/rich-filters/filter-item/property.tsx
  • apps/web/core/components/rich-filters/filter-item/root.tsx
  • apps/web/core/components/rich-filters/filter-value-input/select/multi.tsx
  • apps/web/core/components/rich-filters/filter-value-input/select/single.tsx
  • apps/web/core/components/rich-filters/filters-row.tsx
  • apps/web/core/components/rich-filters/filters-toggle.tsx
  • apps/web/core/components/settings/content-wrapper.tsx
  • apps/web/core/components/settings/heading.tsx
  • apps/web/core/components/settings/mobile/nav.tsx
  • apps/web/core/components/settings/page-header.tsx
  • apps/web/core/components/settings/profile/content/pages/api-tokens.tsx
  • apps/web/core/components/settings/profile/content/pages/general/form.tsx
  • apps/web/core/components/settings/profile/content/pages/notifications/email-notification-form.tsx
  • apps/web/core/components/settings/profile/content/pages/preferences/language-and-timezone-list.tsx
  • apps/web/core/components/settings/profile/content/pages/security.tsx
  • apps/web/core/components/settings/profile/content/root.tsx
  • apps/web/core/components/settings/profile/heading.tsx
  • apps/web/core/components/settings/profile/modal.tsx
  • apps/web/core/components/settings/profile/sidebar/item-categories.tsx
  • apps/web/core/components/settings/profile/sidebar/root.tsx
  • apps/web/core/components/settings/project/content/feature-control-item.tsx
  • apps/web/core/components/settings/project/sidebar/header.tsx
  • apps/web/core/components/settings/project/sidebar/item-icon.tsx
  • apps/web/core/components/settings/project/sidebar/root.tsx
  • apps/web/core/components/settings/sidebar/item.tsx
  • apps/web/core/components/settings/workspace/sidebar/header.tsx
  • apps/web/core/components/settings/workspace/sidebar/item-icon.tsx
  • apps/web/core/components/settings/workspace/sidebar/root.tsx
  • apps/web/core/components/sidebar/add-button.tsx
  • apps/web/core/components/sidebar/sidebar-toggle-button.tsx
  • apps/web/core/components/sidebar/sidebar-wrapper.tsx
  • apps/web/core/components/stickies/delete-modal.tsx
  • apps/web/core/components/stickies/layout/stickies-infinite.tsx
  • apps/web/core/components/stickies/layout/stickies-loader.tsx
  • apps/web/core/components/stickies/modal/index.tsx
  • apps/web/core/components/stickies/modal/search.tsx
  • apps/web/core/components/stickies/sticky/sticky-item-drag-handle.tsx
  • apps/web/core/components/stickies/sticky/use-operations.tsx
  • apps/web/core/components/ui/loader/layouts/gantt-layout-loader.tsx
  • apps/web/core/components/ui/loader/layouts/kanban-layout-loader.tsx
  • apps/web/core/components/ui/loader/layouts/list-layout-loader.tsx
  • apps/web/core/components/ui/loader/layouts/project-inbox/inbox-layout-loader.tsx
  • apps/web/core/components/ui/loader/layouts/spreadsheet-layout-loader.tsx
  • apps/web/core/components/views/applied-filters/root.tsx
  • apps/web/core/components/views/delete-view-modal.tsx
  • apps/web/core/components/views/filters/order-by.tsx
  • apps/web/core/components/views/form.tsx
  • apps/web/core/components/views/modal.tsx
  • apps/web/core/components/views/quick-actions.tsx
  • apps/web/core/components/views/view-list-header.tsx
  • apps/web/core/components/views/view-list-item-action.tsx
  • apps/web/core/components/views/view-list-item.tsx
  • apps/web/core/components/views/views-list.tsx
  • apps/web/core/components/web-hooks/create-webhook-modal.tsx
  • apps/web/core/components/web-hooks/delete-webhook-modal.tsx
  • apps/web/core/components/web-hooks/empty-state.tsx
  • apps/web/core/components/web-hooks/form/delete-section.tsx
  • apps/web/core/components/web-hooks/form/form.tsx
  • apps/web/core/components/web-hooks/form/secret-key.tsx
  • apps/web/core/components/web-hooks/generated-hook-details.tsx
  • apps/web/core/components/work-item-filters/filters-hoc/project-level.tsx
  • apps/web/core/components/work-item-filters/filters-hoc/workspace-level.tsx
  • apps/web/core/components/workspace-notifications/root.tsx
  • apps/web/core/components/workspace-notifications/sidebar/empty-state.tsx
  • apps/web/core/components/workspace-notifications/sidebar/filters/applied-filter.tsx
  • apps/web/core/components/workspace-notifications/sidebar/filters/menu/root.tsx
  • apps/web/core/components/workspace-notifications/sidebar/header/options/menu-option/root.tsx
  • apps/web/core/components/workspace-notifications/sidebar/header/options/root.tsx
  • apps/web/core/components/workspace-notifications/sidebar/header/root.tsx
  • apps/web/core/components/workspace-notifications/sidebar/notification-card/item.tsx
  • apps/web/core/components/workspace-notifications/sidebar/notification-card/options/archive.tsx
  • apps/web/core/components/workspace-notifications/sidebar/notification-card/options/read.tsx
  • apps/web/core/components/workspace-notifications/sidebar/notification-card/options/snooze/modal.tsx
  • apps/web/core/components/workspace-notifications/sidebar/notification-card/options/snooze/root.tsx
  • apps/web/core/components/workspace-notifications/sidebar/root.tsx
  • apps/web/core/components/workspace/ConfirmWorkspaceMemberRemove.tsx
  • apps/web/core/components/workspace/billing/comparison/base.tsx
  • apps/web/core/components/workspace/billing/comparison/plan-detail.tsx
  • apps/web/core/components/workspace/confirm-workspace-member-remove.tsx
  • apps/web/core/components/workspace/create-workspace-form.tsx
  • apps/web/core/components/workspace/delete-workspace-form.tsx
  • apps/web/core/components/workspace/delete-workspace-modal.tsx
  • apps/web/core/components/workspace/delete-workspace-section.tsx
  • apps/web/core/components/workspace/edition-badge.tsx
  • apps/web/core/components/workspace/invite-modal/actions.tsx
  • apps/web/core/components/workspace/invite-modal/fields.tsx
  • apps/web/core/components/workspace/members/invite-modal.tsx
  • apps/web/core/components/workspace/settings/invitations-list-item.tsx
  • apps/web/core/components/workspace/settings/member-columns.tsx
  • apps/web/core/components/workspace/settings/members-list-item.tsx
  • apps/web/core/components/workspace/settings/workspace-details.tsx
  • apps/web/core/components/workspace/sidebar/extended-sidebar-item.tsx
  • apps/web/core/components/workspace/sidebar/favorites/favorite-folder.tsx
  • apps/web/core/components/workspace/sidebar/favorites/favorite-items/common/favorite-item-drag-handle.tsx
  • apps/web/core/components/workspace/sidebar/favorites/favorite-items/common/favorite-item-icon.tsx
  • apps/web/core/components/workspace/sidebar/favorites/favorite-items/common/favorite-item-quick-action.tsx
  • apps/web/core/components/workspace/sidebar/favorites/favorite-items/root.tsx
  • apps/web/core/components/workspace/sidebar/favorites/favorites-menu.tsx
  • apps/web/core/components/workspace/sidebar/favorites/new-fav-folder.tsx
  • apps/web/core/components/workspace/sidebar/help-section/root.tsx
  • apps/web/core/components/workspace/sidebar/projects-list-item.tsx
  • apps/web/core/components/workspace/sidebar/projects-list.tsx
  • apps/web/core/components/workspace/sidebar/user-menu-root.tsx
  • apps/web/core/components/workspace/sidebar/user-menu.tsx
  • apps/web/core/components/workspace/sidebar/workspace-menu-header.tsx
  • apps/web/core/components/workspace/sidebar/workspace-menu-root.tsx
  • apps/web/core/components/workspace/views/default-view-quick-action.tsx
  • apps/web/core/components/workspace/views/delete-view-modal.tsx
  • apps/web/core/components/workspace/views/form.tsx
  • apps/web/core/components/workspace/views/header.tsx
  • apps/web/core/components/workspace/views/modal.tsx
  • apps/web/core/components/workspace/views/quick-action.tsx
  • apps/web/core/components/workspace/views/view-list-item.tsx
  • apps/web/core/hooks/use-collaborative-page-actions.tsx
  • apps/web/core/hooks/use-group-dragndrop.ts
  • apps/web/core/hooks/use-local-storage.tsx
  • apps/web/core/hooks/use-multiple-select.ts
  • apps/web/core/hooks/use-page-operations.ts
  • apps/web/core/hooks/use-realtime-page-events.tsx
  • apps/web/core/hooks/work-item-filters/use-work-item-filters-config.tsx
  • apps/web/core/layouts/auth-layout/workspace-wrapper.tsx
  • apps/web/core/lib/local-storage.ts
  • apps/web/core/store/issue/workspace-draft/issue.store.ts
  • apps/web/core/store/pages/base-page.ts
  • apps/web/core/store/sticky/sticky.store.ts
  • apps/web/helpers/views.helper.ts
  • apps/web/package.json
  • apps/web/styles/globals.css
  • docs/linting.md
  • packages/blocks/package.json
  • packages/blocks/src/animated-counter/animated-counter.tsx
  • packages/blocks/src/animated-counter/index.ts
  • packages/blocks/src/avatar/avatar-group.tsx
  • packages/blocks/src/avatar/avatar.tsx
  • packages/blocks/src/avatar/helper.tsx
  • packages/blocks/src/avatar/index.ts
  • packages/blocks/src/breadcrumbs/breadcrumbs.tsx
  • packages/blocks/src/breadcrumbs/index.ts
  • packages/blocks/src/breadcrumbs/navigation-search-dropdown.tsx
  • packages/blocks/src/card/card.tsx
  • packages/blocks/src/card/helper.tsx
  • packages/blocks/src/card/index.ts
  • packages/blocks/src/charts/area-chart/index.ts
  • packages/blocks/src/charts/area-chart/root.tsx
  • packages/blocks/src/charts/bar-chart/bar.tsx
  • packages/blocks/src/charts/bar-chart/index.ts
  • packages/blocks/src/charts/bar-chart/root.tsx
  • packages/blocks/src/charts/components/legend.tsx
  • packages/blocks/src/charts/components/tick.tsx
  • packages/blocks/src/charts/components/tooltip.tsx
  • packages/blocks/src/charts/line-chart/index.ts
  • packages/blocks/src/charts/line-chart/root.tsx
  • packages/blocks/src/charts/pie-chart/active-shape.tsx
  • packages/blocks/src/charts/pie-chart/index.ts
  • packages/blocks/src/charts/pie-chart/root.tsx
  • packages/blocks/src/charts/pie-chart/tooltip.tsx
  • packages/blocks/src/charts/radar-chart/index.ts
  • packages/blocks/src/charts/radar-chart/root.tsx
  • packages/blocks/src/charts/scatter-chart/index.ts
  • packages/blocks/src/charts/scatter-chart/root.tsx
  • packages/blocks/src/charts/tree-map/index.ts
  • packages/blocks/src/charts/tree-map/map-content.tsx
  • packages/blocks/src/charts/tree-map/root.tsx
  • packages/blocks/src/charts/tree-map/tooltip.tsx
  • packages/blocks/src/content-wrapper/content-wrapper.tsx
  • packages/blocks/src/content-wrapper/index.ts
  • packages/blocks/src/control-link/control-link.tsx
  • packages/blocks/src/control-link/index.ts
  • packages/blocks/src/dropdowns/combo-box.tsx
  • packages/blocks/src/dropdowns/context-menu/index.ts
  • packages/blocks/src/dropdowns/context-menu/item.tsx
  • packages/blocks/src/dropdowns/context-menu/root.tsx
  • packages/blocks/src/dropdowns/custom-menu.tsx
  • packages/blocks/src/dropdowns/custom-search-select.tsx
  • packages/blocks/src/dropdowns/custom-select.tsx
  • packages/blocks/src/dropdowns/dropdown/common/button.tsx
  • packages/blocks/src/dropdowns/dropdown/common/index.ts
  • packages/blocks/src/dropdowns/dropdown/common/input-search.tsx
  • packages/blocks/src/dropdowns/dropdown/common/loader.tsx
  • packages/blocks/src/dropdowns/dropdown/common/options.tsx
  • packages/blocks/src/dropdowns/dropdown/dropdown.d.ts
  • packages/blocks/src/dropdowns/dropdown/index.ts
  • packages/blocks/src/dropdowns/dropdown/single-select.tsx
  • packages/blocks/src/dropdowns/helper.tsx
  • packages/blocks/src/dropdowns/index.ts
  • packages/blocks/src/emoji-icon-picker/emoji-picker.tsx
  • packages/blocks/src/emoji-icon-picker/emoji/emoji.tsx
  • packages/blocks/src/emoji-icon-picker/emoji/index.ts
  • packages/blocks/src/emoji-icon-picker/helper.tsx
  • packages/blocks/src/emoji-icon-picker/icon/icon-root.tsx
  • packages/blocks/src/emoji-icon-picker/icon/index.ts
  • packages/blocks/src/emoji-icon-picker/icon/lucide-root.tsx
  • packages/blocks/src/emoji-icon-picker/icon/material-root.tsx
  • packages/blocks/src/emoji-icon-picker/index.ts
  • packages/blocks/src/emoji-icon-picker/logo.tsx
  • packages/blocks/src/emoji-icon-picker/lucide-icons.tsx
  • packages/blocks/src/emoji-icon-picker/material-icons.tsx
  • packages/blocks/src/emoji-reaction/emoji-reaction-picker.tsx
  • packages/blocks/src/emoji-reaction/emoji-reaction.tsx
  • packages/blocks/src/emoji-reaction/index.ts
  • packages/blocks/src/empty-state/assets/asset-registry.tsx
  • packages/blocks/src/empty-state/assets/asset-types.ts
  • packages/blocks/src/empty-state/assets/helper.tsx
  • packages/blocks/src/empty-state/assets/horizontal-stack/constant.tsx
  • packages/blocks/src/empty-state/assets/horizontal-stack/customer.tsx
  • packages/blocks/src/empty-state/assets/horizontal-stack/epic.tsx
  • packages/blocks/src/empty-state/assets/horizontal-stack/estimate.tsx
  • packages/blocks/src/empty-state/assets/horizontal-stack/export.tsx
  • packages/blocks/src/empty-state/assets/horizontal-stack/index.ts
  • packages/blocks/src/empty-state/assets/horizontal-stack/intake.tsx
  • packages/blocks/src/empty-state/assets/horizontal-stack/label.tsx
  • packages/blocks/src/empty-state/assets/horizontal-stack/link.tsx
  • packages/blocks/src/empty-state/assets/horizontal-stack/members.tsx
  • packages/blocks/src/empty-state/assets/horizontal-stack/note.tsx
  • packages/blocks/src/empty-state/assets/horizontal-stack/priority.tsx
  • packages/blocks/src/empty-state/assets/horizontal-stack/project.tsx
  • packages/blocks/src/empty-state/assets/horizontal-stack/settings.tsx
  • packages/blocks/src/empty-state/assets/horizontal-stack/state.tsx
  • packages/blocks/src/empty-state/assets/horizontal-stack/template.tsx
  • packages/blocks/src/empty-state/assets/horizontal-stack/token.tsx
  • packages/blocks/src/empty-state/assets/horizontal-stack/unknown.tsx
  • packages/blocks/src/empty-state/assets/horizontal-stack/update.tsx
  • packages/blocks/src/empty-state/assets/horizontal-stack/webhook.tsx
  • packages/blocks/src/empty-state/assets/horizontal-stack/work-item.tsx
  • packages/blocks/src/empty-state/assets/horizontal-stack/worklog.tsx
  • packages/blocks/src/empty-state/assets/illustration/constant.tsx
  • packages/blocks/src/empty-state/assets/illustration/inbox.tsx
  • packages/blocks/src/empty-state/assets/illustration/index.ts
  • packages/blocks/src/empty-state/assets/illustration/search.tsx
  • packages/blocks/src/empty-state/assets/index.ts
  • packages/blocks/src/empty-state/assets/vertical-stack/404-error.tsx
  • packages/blocks/src/empty-state/assets/vertical-stack/archived-cycle.tsx
  • packages/blocks/src/empty-state/assets/vertical-stack/archived-module.tsx
  • packages/blocks/src/empty-state/assets/vertical-stack/archived-work-item.tsx
  • packages/blocks/src/empty-state/assets/vertical-stack/changelog.tsx
  • packages/blocks/src/empty-state/assets/vertical-stack/constant.tsx
  • packages/blocks/src/empty-state/assets/vertical-stack/customer.tsx
  • packages/blocks/src/empty-state/assets/vertical-stack/cycle.tsx
  • packages/blocks/src/empty-state/assets/vertical-stack/dashboard.tsx
  • packages/blocks/src/empty-state/assets/vertical-stack/draft.tsx
  • packages/blocks/src/empty-state/assets/vertical-stack/epic.tsx
  • packages/blocks/src/empty-state/assets/vertical-stack/index.ts
  • packages/blocks/src/empty-state/assets/vertical-stack/initiative.tsx
  • packages/blocks/src/empty-state/assets/vertical-stack/invalid-link.tsx
  • packages/blocks/src/empty-state/assets/vertical-stack/module.tsx
  • packages/blocks/src/empty-state/assets/vertical-stack/no-access.tsx
  • packages/blocks/src/empty-state/assets/vertical-stack/page.tsx
  • packages/blocks/src/empty-state/assets/vertical-stack/project.tsx
  • packages/blocks/src/empty-state/assets/vertical-stack/server-error.tsx
  • packages/blocks/src/empty-state/assets/vertical-stack/teamspace.tsx
  • packages/blocks/src/empty-state/assets/vertical-stack/view.tsx
  • packages/blocks/src/empty-state/assets/vertical-stack/work-item.tsx
  • packages/blocks/src/empty-state/button.tsx
  • packages/blocks/src/empty-state/compact-empty-state.tsx
  • packages/blocks/src/empty-state/detailed-empty-state.tsx
  • packages/blocks/src/empty-state/empty-state.tsx
  • packages/blocks/src/empty-state/index.ts
  • packages/blocks/src/empty-state/types.ts
  • packages/blocks/src/favorite-star/favorite-star.tsx
  • packages/blocks/src/favorite-star/index.ts
  • packages/blocks/src/form-fields/index.ts
  • packages/blocks/src/form-fields/input-color-picker.tsx
  • packages/blocks/src/form-fields/input.tsx
  • packages/blocks/src/form-fields/password/helper.tsx
  • packages/blocks/src/form-fields/password/index.ts
  • packages/blocks/src/form-fields/password/indicator.tsx
  • packages/blocks/src/form-fields/password/password-input.tsx
  • packages/blocks/src/form-fields/textarea.tsx
  • packages/blocks/src/header/header.tsx
  • packages/blocks/src/header/helper.tsx
  • packages/blocks/src/header/index.ts
  • packages/blocks/src/hooks/use-auto-resize-textarea.ts
  • packages/blocks/src/hooks/use-dropdown-key-down.tsx
  • packages/blocks/src/hooks/use-dropdown-key-pressed.ts
  • packages/blocks/src/hooks/use-platform-os.ts
  • packages/blocks/src/icons/blocked-icon.tsx
  • packages/blocks/src/icons/blocker-icon.tsx
  • packages/blocks/src/icons/brand/accenture-logo.tsx
  • packages/blocks/src/icons/brand/dolby-logo.tsx
  • packages/blocks/src/icons/brand/plane-lockup.tsx
  • packages/blocks/src/icons/brand/plane-logo.tsx
  • packages/blocks/src/icons/brand/sony-logo.tsx
  • packages/blocks/src/icons/brand/zerodha-logo.tsx
  • packages/blocks/src/icons/calendar-after-icon.tsx
  • packages/blocks/src/icons/calendar-before-icon.tsx
  • packages/blocks/src/icons/cycle/circle-dot-full-icon.tsx
  • packages/blocks/src/icons/cycle/cycle-group-icon.tsx
  • packages/blocks/src/icons/cycle/helper.tsx
  • packages/blocks/src/icons/favorite-folder-icon.tsx
  • packages/blocks/src/icons/icon-wrapper.tsx
  • packages/blocks/src/icons/index.ts
  • packages/blocks/src/icons/layer-stack.tsx
  • packages/blocks/src/icons/module/backlog.tsx
  • packages/blocks/src/icons/module/cancelled.tsx
  • packages/blocks/src/icons/module/completed.tsx
  • packages/blocks/src/icons/module/in-progress.tsx
  • packages/blocks/src/icons/module/module-status-icon.tsx
  • packages/blocks/src/icons/module/paused.tsx
  • packages/blocks/src/icons/module/planned.tsx
  • packages/blocks/src/icons/monospace-icon.tsx
  • packages/blocks/src/icons/priority-icon.tsx
  • packages/blocks/src/icons/project/cycle-icon.tsx
  • packages/blocks/src/icons/sans-serif-icon.tsx
  • packages/blocks/src/icons/serif-icon.tsx
  • packages/blocks/src/icons/state/backlog-group-icon.tsx
  • packages/blocks/src/icons/state/cancelled-group-icon.tsx
  • packages/blocks/src/icons/state/completed-group-icon.tsx
  • packages/blocks/src/icons/state/dashed-circle.tsx
  • packages/blocks/src/icons/state/helper.tsx
  • packages/blocks/src/icons/state/intake-state-group-icon.tsx
  • packages/blocks/src/icons/state/progress-circle.tsx
  • packages/blocks/src/icons/state/started-group-icon.tsx
  • packages/blocks/src/icons/state/state-group-icon.tsx
  • packages/blocks/src/icons/state/triage-group-icon.tsx
  • packages/blocks/src/icons/state/unstarted-group-icon.tsx
  • packages/blocks/src/icons/sub-brand/pi-chat.tsx
  • packages/blocks/src/icons/sub-brand/plane-icon.tsx
  • packages/blocks/src/icons/type.ts
  • packages/blocks/src/link/block.tsx
  • packages/blocks/src/link/index.ts
  • packages/blocks/src/loader/index.ts
  • packages/blocks/src/loader/loader.tsx
  • packages/blocks/src/modals/alert-modal.tsx
  • packages/blocks/src/modals/constants.ts
  • packages/blocks/src/modals/index.ts
  • packages/blocks/src/modals/modal-core.tsx
  • packages/blocks/src/oauth/index.ts
  • packages/blocks/src/oauth/oauth-button.tsx
  • packages/blocks/src/oauth/oauth-options.tsx
  • packages/blocks/src/popovers/index.ts
  • packages/blocks/src/popovers/popover-menu.tsx
  • packages/blocks/src/popovers/popover.tsx
  • packages/blocks/src/popovers/types.ts
  • packages/blocks/src/portal/constants.ts
  • packages/blocks/src/portal/index.ts
  • packages/blocks/src/portal/modal-portal.tsx
  • packages/blocks/src/portal/portal-wrapper.tsx
  • packages/blocks/src/portal/types.ts
  • packages/blocks/src/row/helper.tsx
  • packages/blocks/src/row/index.ts
  • packages/blocks/src/row/row.tsx
  • packages/blocks/src/sortable/drag-handle.tsx
  • packages/blocks/src/sortable/draggable.tsx
  • packages/blocks/src/sortable/drop-indicator.tsx
  • packages/blocks/src/sortable/index.ts
  • packages/blocks/src/sortable/sortable.tsx
  • packages/blocks/src/spinner/circular-bar-spinner.tsx
  • packages/blocks/src/spinner/circular-spinner.tsx
  • packages/blocks/src/spinner/index.ts
  • packages/blocks/src/tab-navigation/index.ts
  • packages/blocks/src/tab-navigation/tab-navigation-item.tsx
  • packages/blocks/src/tab-navigation/tab-navigation-list.tsx
  • packages/blocks/src/tab-navigation/tab-navigation-types.ts
  • packages/blocks/src/tables/index.ts
  • packages/blocks/src/tables/table.tsx
  • packages/blocks/src/tables/types.ts
  • packages/blocks/src/toast/index.ts
  • packages/blocks/src/toast/toast.tsx
  • packages/blocks/src/utils/classname.tsx
  • packages/blocks/src/utils/index.ts
  • packages/blocks/src/utils/placement.ts
  • packages/blocks/tsconfig.json
  • packages/blocks/tsdown.config.ts
  • packages/codemods/tests/remove-directives.spec.ts
  • packages/editor/package.json
  • packages/editor/src/components/editors/document/loader.tsx
  • packages/editor/src/components/menus/block-menu.tsx
  • packages/editor/src/constants/common.ts
  • packages/editor/src/extensions/callout/extension-config.ts
  • packages/editor/src/extensions/callout/logo-selector.tsx
  • packages/editor/src/extensions/code/code-block-node-view.tsx
  • packages/editor/src/extensions/code/lowlight-plugin.ts
  • packages/editor/src/extensions/custom-image/components/toolbar/alignment.tsx
  • packages/editor/src/extensions/custom-image/components/toolbar/download.tsx
  • packages/editor/src/extensions/custom-image/components/toolbar/full-screen/root.tsx
  • packages/editor/src/extensions/emoji/emoji.ts
  • packages/editor/src/extensions/table/plugins/drag-handles/column/dropdown.tsx
  • packages/editor/src/extensions/table/plugins/drag-handles/row/dropdown.tsx
  • packages/propel/.prettierignore
  • packages/propel/.storybook/main.ts
  • packages/propel/.storybook/manager.ts
  • packages/propel/.storybook/preview.ts
  • packages/propel/.storybook/tailwind.css
  • packages/propel/postcss.config.js
  • packages/propel/src/accordion/accordion.stories.tsx
  • packages/propel/src/accordion/accordion.tsx
  • packages/propel/src/accordion/index.ts
  • packages/propel/src/animated-counter/animated-counter.stories.tsx
  • packages/propel/src/avatar/avatar.stories.tsx
  • packages/propel/src/avatar/avatar.tsx
  • packages/propel/src/avatar/index.ts
  • packages/propel/src/badge/badge.stories.tsx
  • packages/propel/src/badge/badge.tsx
  • packages/propel/src/badge/helper.tsx
  • packages/propel/src/badge/index.ts
  • packages/propel/src/banner/banner.stories.tsx
  • packages/propel/src/banner/banner.tsx
  • packages/propel/src/banner/helper.tsx
  • packages/propel/src/banner/index.ts
  • packages/propel/src/button/button.stories.tsx
  • packages/propel/src/button/button.tsx
  • packages/propel/src/button/helper.tsx
  • packages/propel/src/button/index.ts
  • packages/propel/src/calendar/calendar.stories.tsx
  • packages/propel/src/calendar/index.ts
  • packages/propel/src/calendar/root.tsx
  • packages/propel/src/card/card.stories.tsx
  • packages/propel/src/collapsible/collapsible.stories.tsx
  • packages/propel/src/collapsible/collapsible.tsx
  • packages/propel/src/combobox/combobox.stories.tsx
  • packages/propel/src/combobox/combobox.tsx
  • packages/propel/src/combobox/index.ts
  • packages/propel/src/command/command.stories.tsx
  • packages/propel/src/command/command.tsx
  • packages/propel/src/command/index.ts
  • packages/propel/src/context-menu/context-menu.stories.tsx
  • packages/propel/src/context-menu/context-menu.tsx
  • packages/propel/src/context-menu/index.ts
  • packages/propel/src/design-system/design-system-philosophy.stories.tsx
  • packages/propel/src/dialog/dialog.stories.tsx
  • packages/propel/src/dialog/index.ts
  • packages/propel/src/dialog/root.tsx
  • packages/propel/src/emoji-icon-picker/emoji-picker.stories.tsx
  • packages/propel/src/emoji-reaction/emoji-reaction-picker.stories.tsx
  • packages/propel/src/emoji-reaction/emoji-reaction.stories.tsx
  • packages/propel/src/empty-state/assets-showcase.stories.tsx
  • packages/propel/src/empty-state/compact-empty-state.stories.tsx
  • packages/propel/src/empty-state/detailed-empty-state.stories.tsx
  • packages/propel/src/icon-button/helper.tsx
  • packages/propel/src/icon-button/icon-button.stories.tsx
  • packages/propel/src/icon-button/icon-button.tsx
  • packages/propel/src/icon-button/index.ts
  • packages/propel/src/icons/actions/add-circle-icon.tsx
  • packages/propel/src/icons/actions/add-icon.tsx
  • packages/propel/src/icons/actions/add-reaction-icon.tsx
  • packages/propel/src/icons/actions/add-workitem-icon.tsx
  • packages/propel/src/icons/actions/check-icon.tsx
  • packages/propel/src/icons/actions/close-icon.tsx
  • packages/propel/src/icons/actions/copy-icon.tsx
  • packages/propel/src/icons/actions/copy-link.tsx
  • packages/propel/src/icons/actions/edit-icon.tsx
  • packages/propel/src/icons/actions/filter-applied-icon.tsx
  • packages/propel/src/icons/actions/filter-icon.tsx
  • packages/propel/src/icons/actions/globe-icon.tsx
  • packages/propel/src/icons/actions/index.ts
  • packages/propel/src/icons/actions/link-icon.tsx
  • packages/propel/src/icons/actions/lock-icon.tsx
  • packages/propel/src/icons/actions/new-tab-icon.tsx
  • packages/propel/src/icons/actions/plus-icon.tsx
  • packages/propel/src/icons/actions/preferences-icon.tsx
  • packages/propel/src/icons/actions/search-icon.tsx
  • packages/propel/src/icons/actions/trash-icon.tsx
  • packages/propel/src/icons/actions/upgrade-icon.tsx
  • packages/propel/src/icons/activity-icon.tsx
  • packages/propel/src/icons/ai-icon.tsx
  • packages/propel/src/icons/arrows/chevron-down.tsx
  • packages/propel/src/icons/arrows/chevron-left.tsx
  • packages/propel/src/icons/arrows/chevron-right.tsx
  • packages/propel/src/icons/arrows/chevron-up.tsx
  • packages/propel/src/icons/arrows/index.ts
  • packages/propel/src/icons/arrows/reply-icon.tsx
  • packages/propel/src/icons/at-risk-icon.tsx
  • packages/propel/src/icons/attachments/audio-file-icon.tsx
  • packages/propel/src/icons/attachments/code-file-icon.tsx
  • packages/propel/src/icons/attachments/document-file-icon.tsx
  • packages/propel/src/icons/attachments/image-file-icon.tsx
  • packages/propel/src/icons/attachments/index.ts
  • packages/propel/src/icons/attachments/video-file-icon.tsx
  • packages/propel/src/icons/bar-icon.tsx
  • packages/propel/src/icons/brand/index.ts
  • packages/propel/src/icons/brand/plane-wordmark.tsx
  • packages/propel/src/icons/center-panel-icon.tsx
  • packages/propel/src/icons/comment-fill-icon.tsx
  • packages/propel/src/icons/constants.tsx
  • packages/propel/src/icons/create-icon.tsx
  • packages/propel/src/icons/cycle/contrast-icon.tsx
  • packages/propel/src/icons/cycle/double-circle-icon.tsx
  • packages/propel/src/icons/cycle/index.ts
  • packages/propel/src/icons/default-icon.tsx
  • packages/propel/src/icons/dice-icon.tsx
  • packages/propel/src/icons/display-properties.tsx
  • packages/propel/src/icons/done-icon.tsx
  • packages/propel/src/icons/dropdown-icon.tsx
  • packages/propel/src/icons/full-screen-panel-icon.tsx
  • packages/propel/src/icons/github-icon.tsx
  • packages/propel/src/icons/gitlab-icon.tsx
  • packages/propel/src/icons/helpers.ts
  • packages/propel/src/icons/icon.tsx
  • packages/propel/src/icons/icons.stories.tsx
  • packages/propel/src/icons/in-progress-icon.tsx
  • packages/propel/src/icons/index.ts
  • packages/propel/src/icons/info-fill-icon.tsx
  • packages/propel/src/icons/intake.tsx
  • packages/propel/src/icons/layers-icon.tsx
  • packages/propel/src/icons/layouts/board-icon.tsx
  • packages/propel/src/icons/layouts/calendar-icon.tsx
  • packages/propel/src/icons/layouts/card-icon.tsx
  • packages/propel/src/icons/layouts/grid-icon.tsx
  • packages/propel/src/icons/layouts/index.ts
  • packages/propel/src/icons/layouts/list-icon.tsx
  • packages/propel/src/icons/layouts/sheet-icon.tsx
  • packages/propel/src/icons/layouts/timeline-icon.tsx
  • packages/propel/src/icons/lead-icon.tsx
  • packages/propel/src/icons/misc/check-circle-filled-icon.tsx
  • packages/propel/src/icons/misc/close-circle-filled-icon.tsx
  • packages/propel/src/icons/misc/index.ts
  • packages/propel/src/icons/misc/info-icon.tsx
  • packages/propel/src/icons/module/index.ts
  • packages/propel/src/icons/multiple-sticky.tsx
  • packages/propel/src/icons/off-track-icon.tsx
  • packages/propel/src/icons/on-track-icon.tsx
  • packages/propel/src/icons/overview-icon.tsx
  • packages/propel/src/icons/pending-icon.tsx
  • packages/propel/src/icons/photo-filter-icon.tsx
  • packages/propel/src/icons/planned-icon.tsx
  • packages/propel/src/icons/project/epic-icon.tsx
  • packages/propel/src/icons/project/index.ts
  • packages/propel/src/icons/project/intake-icon.tsx
  • packages/propel/src/icons/project/module-icon.tsx
  • packages/propel/src/icons/project/page-icon.tsx
  • packages/propel/src/icons/project/view-icon.tsx
  • packages/propel/src/icons/project/work-items-icon.tsx
  • packages/propel/src/icons/properties/boolean-icon.tsx
  • packages/propel/src/icons/properties/comment-reply-icon.tsx
  • packages/propel/src/icons/properties/dropdown-icon.tsx
  • packages/propel/src/icons/properties/due-date-icon.tsx
  • packages/propel/src/icons/properties/duplicate-icon.tsx
  • packages/propel/src/icons/properties/estimate-icon.tsx
  • packages/propel/src/icons/properties/hash-icon.tsx
  • packages/propel/src/icons/properties/index.ts
  • packages/propel/src/icons/properties/label-filled-icon.tsx
  • packages/propel/src/icons/properties/label-icon.tsx
  • packages/propel/src/icons/properties/members-icon.tsx
  • packages/propel/src/icons/properties/overdue-date-icon.tsx
  • packages/propel/src/icons/properties/parent-icon.tsx
  • packages/propel/src/icons/properties/priority-icon.tsx
  • packages/propel/src/icons/properties/relates-to-icon.tsx
  • packages/propel/src/icons/properties/relation-icon.tsx
  • packages/propel/src/icons/properties/scope-icon.tsx
  • packages/propel/src/icons/properties/start-date-icon.tsx
  • packages/propel/src/icons/properties/state-icon.tsx
  • packages/propel/src/icons/properties/user-circle-icon.tsx
  • packages/propel/src/icons/properties/user-icon.tsx
  • packages/propel/src/icons/properties/user-square-icon.tsx
  • packages/propel/src/icons/properties/workflows-icon.tsx
  • packages/propel/src/icons/registry.ts
  • packages/propel/src/icons/related-icon.tsx
  • packages/propel/src/icons/set-as-default-icon.tsx
  • packages/propel/src/icons/side-panel-icon.tsx
  • packages/propel/src/icons/state/index.ts
  • packages/propel/src/icons/sticky-note-icon.tsx
  • packages/propel/src/icons/sub-brand/index.ts
  • packages/propel/src/icons/sub-brand/wiki-icon.tsx
  • packages/propel/src/icons/suspended-user.tsx
  • packages/propel/src/icons/teams.tsx
  • packages/propel/src/icons/transfer-icon.tsx
  • packages/propel/src/icons/tree-map-icon.tsx
  • packages/propel/src/icons/updates-icon.tsx
  • packages/propel/src/icons/user-activity-icon.tsx
  • packages/propel/src/icons/workspace-icon.tsx
  • packages/propel/src/icons/workspace/analytics-icon.tsx
  • packages/propel/src/icons/workspace/archive-icon.tsx
  • packages/propel/src/icons/workspace/dashboard-icon.tsx
  • packages/propel/src/icons/workspace/draft-icon.tsx
  • packages/propel/src/icons/workspace/home-icon.tsx
  • packages/propel/src/icons/workspace/inbox-icon.tsx
  • packages/propel/src/icons/workspace/index.ts
  • packages/propel/src/icons/workspace/multiple-sticky-icon.tsx
  • packages/propel/src/icons/workspace/project-icon.tsx
  • packages/propel/src/icons/workspace/your-work-icon.tsx
  • packages/propel/src/input/index.ts
  • packages/propel/src/input/input.stories.tsx
  • packages/propel/src/input/input.tsx
  • packages/propel/src/menu/index.ts
  • packages/propel/src/menu/menu.stories.tsx
  • packages/propel/src/menu/menu.tsx
  • packages/propel/src/menu/types.ts
  • packages/propel/src/pill/index.ts
  • packages/propel/src/pill/pill.stories.tsx
  • packages/propel/src/pill/pill.tsx
  • packages/propel/src/popover/popover.stories.tsx
  • packages/propel/src/popover/root.tsx
  • packages/propel/src/portal/portal.stories.tsx
  • packages/propel/src/scrollarea/index.ts
  • packages/propel/src/scrollarea/scrollarea.stories.tsx
  • packages/propel/src/scrollarea/scrollarea.tsx
  • packages/propel/src/separator/separator.stories.tsx
  • packages/propel/src/separator/separator.tsx
  • packages/propel/src/skeleton/index.ts
  • packages/propel/src/skeleton/root.tsx
  • packages/propel/src/skeleton/skeleton.stories.tsx
  • packages/propel/src/spinners/circular-bar-spinner.stories.tsx
  • packages/propel/src/spinners/circular-spinner.stories.tsx
  • packages/propel/src/styles/react-day-picker.css
  • packages/propel/src/switch/index.ts
  • packages/propel/src/switch/root.tsx
  • packages/propel/src/switch/switch.stories.tsx
  • packages/propel/src/tab-navigation/tab-navigation.stories.tsx
  • packages/propel/src/table/core.tsx
  • packages/propel/src/table/index.ts
  • packages/propel/src/table/table.stories.tsx
  • packages/propel/src/tabs/index.ts
  • packages/propel/src/tabs/tabs.stories.tsx
  • packages/propel/src/tabs/tabs.tsx
  • packages/propel/src/toast/toast.stories.tsx
  • packages/propel/src/toolbar/index.ts
  • packages/propel/src/toolbar/toolbar.stories.tsx
  • packages/propel/src/toolbar/toolbar.tsx
  • packages/propel/src/tooltip/index.ts
  • packages/propel/src/tooltip/root.tsx
  • packages/propel/src/tooltip/tooltip.stories.tsx
  • packages/propel/tsdown.config.ts
  • packages/ui/.prettierignore
  • packages/ui/.storybook/main.ts
  • packages/ui/.storybook/preview.ts
  • packages/ui/README.md
  • packages/ui/package.json
  • packages/ui/postcss.config.js
  • packages/ui/src/avatar/avatar.stories.tsx
  • packages/ui/src/breadcrumbs/breadcrumbs.stories.tsx
  • packages/ui/src/button/button.tsx
  • packages/ui/src/button/helper.tsx
  • packages/ui/src/card/card.tsx
  • packages/ui/src/card/helper.tsx
  • packages/ui/src/card/index.ts
  • packages/ui/src/collapsible/collapsible-button.tsx
  • packages/ui/src/collapsible/collapsible.tsx
  • packages/ui/src/collapsible/index.ts
  • packages/ui/src/dropdown/Readme.md
  • packages/ui/src/index.ts
  • packages/ui/src/popovers/popover-menu.stories.tsx
  • packages/ui/src/popovers/popover.stories.tsx
  • packages/ui/src/sortable/sortable.stories.tsx
  • packages/ui/src/spinners/circular-spinner.tsx
  • packages/ui/src/spinners/index.ts
  • packages/ui/src/tables/table.stories.tsx
  • packages/ui/src/tag/helper.tsx
  • packages/ui/src/tag/index.ts
  • packages/ui/src/tag/tag.tsx
  • packages/ui/src/utils/classname.tsx
  • packages/ui/src/utils/index.ts
  • packages/ui/styles/globals.css
  • packages/ui/tsconfig.json

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

React Doctor found 213 new issues in 164 files · 1 error & 212 warnings · score 60 / 100 (Needs work) · 35 fixed · vs preview

Errors

212 warnings

app/(all)/create-workspace/page.tsx

  • ⚠️ L97 Anchor has no content anchor-has-content

components/account/auth-forms/password.tsx

  • ⚠️ L44 React function has high control-flow complexity no-high-complexity-react-function

core/components/account/auth-forms/password.tsx

  • ⚠️ L52 React function has high control-flow complexity no-high-complexity-react-function

core/components/active-cycles/workspace-active-cycles-upgrade.tsx

  • ⚠️ L99 Anchor has no content anchor-has-content

core/components/analytics/insight-table/loader.tsx

  • ⚠️ L24 Array index used as a key no-array-index-as-key

core/components/auth-screens/workspace/not-a-member.tsx

  • ⚠️ L16 Duplicated JSX structure duplicate-jsx-subtree

core/components/core/image-picker-popover.tsx

  • ⚠️ L56 React function has high control-flow complexity no-high-complexity-react-function

core/components/core/modals/bulk-delete-issues-modal.tsx

  • ⚠️ L187 Duplicated JSX structure duplicate-jsx-subtree

core/components/core/modals/user-image-upload-modal.tsx

  • ⚠️ L30 React function has high control-flow complexity no-high-complexity-react-function

core/components/core/modals/workspace-image-upload-modal.tsx

  • ⚠️ L35 React function has high control-flow complexity no-high-complexity-react-function

core/components/cycles/archived-cycles/modal.tsx

  • ⚠️ L65 Duplicated JSX structure duplicate-jsx-subtree

core/components/dropdowns/date-range.tsx

  • ⚠️ L75 React function has high control-flow complexity no-high-complexity-react-function
  • ⚠️ L287 Interaction on static element no-static-element-interactions

core/components/dropdowns/date.tsx

  • ⚠️ L169 Interaction on static element no-static-element-interactions

core/components/dropdowns/estimate.tsx

  • ⚠️ L218 Interaction on static element no-static-element-interactions

core/components/dropdowns/project/base.tsx

  • ⚠️ L223 Interaction on static element no-static-element-interactions

core/components/exporter/single-export.tsx

  • ⚠️ L20 React function has high control-flow complexity no-high-complexity-react-function

core/components/gantt-chart/sidebar/gantt-dnd-HOC.tsx

  • ⚠️ L97 Missing effect dependencies exhaustive-deps

core/components/global/product-updates/footer.tsx

  • ⚠️ L64 Anchor has no content anchor-has-content

core/components/inbox/content/inbox-issue-header.tsx

  • ⚠️ L66 React function has high control-flow complexity no-high-complexity-react-function

core/components/inbox/content/inbox-issue-mobile-header.tsx

  • ⚠️ L64 React function has high control-flow complexity no-high-complexity-react-function

core/components/integration/single-integration-card.tsx

  • ⚠️ L52 React function has high control-flow complexity no-high-complexity-react-function

core/components/issues/issue-detail/label/select/label-select.tsx

  • ⚠️ L35 React function has high control-flow complexity no-high-complexity-react-function
  • ⚠️ L197 Click handler missing keyboard handler click-events-have-key-events
  • ⚠️ L197 Handler on non-interactive element no-noninteractive-element-interactions

core/components/issues/issue-layouts/calendar/day-tile.tsx

  • ⚠️ L132 Missing effect dependencies exhaustive-deps

core/components/issues/issue-modal/form.tsx

  • ⚠️ L74 React function has high control-flow complexity no-high-complexity-react-function

core/components/labels/label-drag-n-drop-HOC.tsx

  • ⚠️ L163 Missing effect dependencies exhaustive-deps
  • ⚠️ L163 Missing effect dependencies exhaustive-deps

core/components/license/modal/card/talk-to-sales.tsx

  • ⚠️ L79 Anchor has no content anchor-has-content

core/components/onboarding/profile-setup.tsx

  • ⚠️ L80 React function has high control-flow complexity no-high-complexity-react-function

core/components/onboarding/steps/profile/root.tsx

  • ⚠️ L56 React function has high control-flow complexity no-high-complexity-react-function

core/components/project/card.tsx

  • ⚠️ L52 React function has high control-flow complexity no-high-complexity-react-function

core/components/settings/profile/content/pages/general/form.tsx

  • ⚠️ L55 React function has high control-flow complexity no-high-complexity-react-function

core/components/settings/profile/content/pages/security.tsx

  • ⚠️ L49 React function has high control-flow complexity no-high-complexity-react-function

core/components/settings/profile/sidebar/item-categories.tsx

  • ⚠️ L61 Control missing accessible label control-has-associated-label

core/components/web-hooks/form/form.tsx

  • ⚠️ L120 Button missing explicit type button-has-type

core/components/workspace/sidebar/projects-list-item.tsx

  • ⚠️ L71 React function has high control-flow complexity no-high-complexity-react-function

core/layouts/auth-layout/workspace-wrapper.tsx

  • ⚠️ L49 React function has high control-flow complexity no-high-complexity-react-function

src/animated-counter/animated-counter.tsx

  • ⚠️ L8 Import from a barrel file no-barrel-import
  • ⚠️ L37 Derived value copied into state no-derived-state

src/avatar/avatar-group.tsx

  • ⚠️ L11 Import from a barrel file no-barrel-import
  • ⚠️ L69 Array index used as a key no-array-index-as-key

src/avatar/avatar.tsx

  • ⚠️ L10 Import from a barrel file no-barrel-import

src/breadcrumbs/breadcrumbs.tsx

  • ⚠️ L10 Import from a barrel file no-barrel-import
  • ⚠️ L71 Click handler missing keyboard handler click-events-have-key-events
  • ⚠️ L71 Interaction on static element no-static-element-interactions

src/breadcrumbs/navigation-search-dropdown.tsx

  • ⚠️ L11 Import from a barrel file no-barrel-import

src/charts/area-chart/root.tsx

  • ⚠️ L8 Heavy library loaded eagerly prefer-dynamic-import

src/charts/bar-chart/bar.tsx

  • ⚠️ L83 Crowded component file no-multi-component-file

162 more warnings not shown.

Reviewed by React Doctor for commit ce7b99a. See inline comments for fixes.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

There are a few confirmed build/runtime breakages (missing type import, SSR-unsafe window access, and an unexported subpath import due to exports mapping) that should be fixed before merging.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

This PR refactors the frontend component layer by removing the in-repo @plane/ui and @plane/propel packages and migrating call sites to the published @makeplane/propel primitives plus a new private workspace package @plane/blocks for Plane-specific composite components.

Changes:

  • Introduces packages/blocks as the new home for Plane-specific UI building blocks and updates imports across apps/packages to use @plane/blocks/*.
  • Replaces former @plane/propel primitive usage with @makeplane/propel (components + icons), including API adaptations where needed.
  • Removes legacy stylesheet imports tied to react-day-picker and updates linting/docs references to the new package layout.
File summaries
File Description
packages/blocks/package.json Defines @plane/blocks package exports for new composite component surface area.
packages/blocks/tsdown.config.ts Adjusts build entrypoints to produce per-subpath outputs for @plane/blocks/* imports.
packages/blocks/tsconfig.json Adds TS config for the new @plane/blocks workspace package.
packages/blocks/src/** Adds and wires composite components/utilities (toast, dropdowns, icons, loaders, etc.) used across apps.
packages/editor/package.json Swaps dependencies from @plane/ui/@plane/propel to @plane/blocks/@makeplane/propel.
apps/web/styles/globals.css Removes legacy react-day-picker CSS import.
apps/space/styles/globals.css Removes legacy react-day-picker CSS import.
apps/web/** Bulk import-path migration from @plane/ui/@plane/propel to @plane/blocks and @makeplane/propel.
apps/space/** Bulk import-path migration from @plane/ui/@plane/propel to @plane/blocks and @makeplane/propel.
docs/linting.md Updates linting docs to reference @plane/blocks instead of the removed packages.
Review details
  • Files reviewed: 300/1244 changed files
  • Comments generated: 3
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +42 to 44
"./tables": "./dist/tables/index.js",
"./tag": "./dist/tag/index.js",
"./toast": "./dist/toast/index.js",
@@ -205,7 +205,7 @@ export class StickyStore implements IStickyStore {
} catch (error) {
console.error("Error in updating sticky:", error);
this.stickies[id] = sticky;
throw new Error();
throw new Error("", { cause: error });
*
* Propel's `AvatarGroup` renders every child it is given, so the capping behaviour that
* `@plane/ui`'s `AvatarGroup` provided through `max` lives here as app chrome. The overflow
* * the legacy `@plane/ui` `AvatarGroup` provided through `max` lives here as app chrome. The overflow
Run oxfmt on files left unformatted by the propel migration in
@plane/editor and web, and replace Math.random() in the Sortable
instance tag with React's useId(), which CodeQL flagged as insecure
randomness.

Claude-Session: https://claude.ai/code/session_01MzVHNG3pKcFs6TsGPLRWTg
label={t("common.go_back")}
onClick={() => router.back()}
/>
<ButtonElement variant="secondary" size="sm" stretch="auto" render={<a href={getMailtoHref()} />}>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

React Doctor · react-doctor/anchor-has-content (warning)

Blind users can't follow this link because screen readers announce nothing, so add visible text, aria-label, or aria-labelledby.

Fix → Put readable text inside every link.

Docs

size="sm"
stretch="auto"
render={
<a href={MARKETING_PRICING_PAGE_LINK} target="_blank" rel="noreferrer" className="cursor-pointer" />

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

React Doctor · react-doctor/anchor-has-content (warning)

Blind users can't follow this link because screen readers announce nothing, so add visible text, aria-label, or aria-labelledby.

Fix → Put readable text inside every link.

Docs

{typeof column.header === "string" ? column.header : ""}
</TableHead>
<TableHead
key={column.header?.toString() ?? index}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

React Doctor · react-doctor/no-array-index-as-key (warning)

Your users can see & submit the wrong data when this list reorders or filters, so use a stable id like key={item.id}, not the array index "index".

Fix → Use a stable id from the item, like key={item.id} or key={item.slug}. Index keys break when the list reorders or filters.

Docs

})
);
}, [blockRef?.current, isLastChild, onDrop]);
}, [isLastChild, onDrop]);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

React Doctor · react-doctor/exhaustive-deps (warning)

useEffect can run with a stale isDragEnabled, id & show your users old data.

Fix → Don't blindly add missing dependencies. Read the hook callback first.

Bad:
useEffect(() => {
setCount(count + 1);
}, [count]);

Better:
useEffect(() => {
setCount((currentCount) => currentCount + 1);
}, []);

If the missing value is recreated every render, move it inside the hook or stabilize it before adding it to deps.

Docs

size="sm"
stretch="auto"
render={
<a

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

React Doctor · react-doctor/anchor-has-content (warning)

Blind users can't follow this link because screen readers announce nothing, so add visible text, aria-label, or aria-labelledby.

Fix → Put readable text inside every link.

Docs

import type { TButtonVariant } from "@plane/propel/button";
import { Button } from "@plane/propel/button";
import type { ButtonVariant } from "@makeplane/propel/components/button";
import { Button } from "@makeplane/propel/components/button";
import { cn } from "../utils";

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

React Doctor · react-doctor/no-barrel-import (warning)

This ships extra code to your users & slows page load. Import directly from "../utils/classname".

Fix → Import from the direct path: import { Button } from './components/Button' instead of ./components

Docs

variant={BUTTON_VARIANTS[variant]}
size="lg"
stretch="auto"
tabIndex={1}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

React Doctor · react-doctor/tabindex-no-positive (warning)

Keyboard users get jumped out of the normal order by a positive tabIndex, so use 0 or -1.

Fix → Use tabIndex={0} (focusable in source order) or tabIndex={-1} (focus only in code).

Docs

@@ -7,7 +7,7 @@
import { MoreVerticalOutline } from "@makeplane/propel/icons";
import React, { forwardRef } from "react";
// helpers
import { cn } from "./utils";
import { cn } from "../utils";

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

React Doctor · react-doctor/no-barrel-import (warning)

This ships extra code to your users & slows page load. Import directly from "../utils/classname".

Fix → Import from the direct path: import { Button } from './components/Button' instead of ./components

Docs

@@ -18,7 +18,7 @@ import {
} from "@atlaskit/pragmatic-drag-and-drop-hitbox/dist/cjs/closest-edge.js";
import { isEqual } from "lodash-es";
import React, { useEffect, useRef, useState } from "react";
import { DropIndicator } from "../drop-indicator";
import { DropIndicator } from "./drop-indicator";
import { cn } from "../utils";

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

React Doctor · react-doctor/no-barrel-import (warning)

This ships extra code to your users & slows page load. Import directly from "../utils/classname".

Fix → Import from the direct path: import { Button } from './components/Button' instead of ./components

Docs

@@ -5,7 +5,7 @@
*/

import React from "react";
import { cn } from "./utils";
import { cn } from "../utils";

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

React Doctor · react-doctor/no-barrel-import (warning)

This ships extra code to your users & slows page load. Import directly from "../utils/classname".

Fix → Import from the direct path: import { Button } from './components/Button' instead of ./components

Docs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants