From 83fdebf64dc12e9d885808f30ec04b43a7277b2c Mon Sep 17 00:00:00 2001 From: Aaron Date: Thu, 20 Nov 2025 19:09:40 +0700 Subject: [PATCH] [WEB-5459] feat(codemods): add function declaration transformer with tests (#8137) - Add jscodeshift-based codemod to convert arrow function components to function declarations - Support React.FC, observer-wrapped, and forwardRef components - Include comprehensive test suite covering edge cases - Add npm script to run transformer across codebase - Target only .tsx files in source directories, excluding node_modules and declaration files * [WEB-5459] chore: updates after running codemod --------- Co-authored-by: sriramveeraghanta --- .github/instructions/bash.instructions.md | 48 ++ .../instructions/typescript.instructions.md | 129 ++++ apps/admin/app/(all)/(dashboard)/ai/form.tsx | 4 +- apps/admin/app/(all)/(dashboard)/ai/page.tsx | 2 +- .../(dashboard)/authentication/gitea/form.tsx | 4 +- .../(dashboard)/authentication/gitea/page.tsx | 2 +- .../authentication/github/form.tsx | 4 +- .../authentication/github/page.tsx | 4 +- .../authentication/gitlab/form.tsx | 4 +- .../authentication/gitlab/page.tsx | 4 +- .../authentication/google/form.tsx | 4 +- .../authentication/google/page.tsx | 4 +- .../(all)/(dashboard)/authentication/page.tsx | 2 +- .../(dashboard)/email/email-config-form.tsx | 4 +- .../app/(all)/(dashboard)/email/page.tsx | 2 +- .../(dashboard)/email/test-email-modal.tsx | 4 +- .../app/(all)/(dashboard)/general/form.tsx | 2 +- .../(all)/(dashboard)/general/intercom.tsx | 2 +- apps/admin/app/(all)/(dashboard)/header.tsx | 4 +- .../app/(all)/(dashboard)/image/form.tsx | 4 +- .../app/(all)/(dashboard)/image/page.tsx | 2 +- apps/admin/app/(all)/(dashboard)/layout.tsx | 5 +- .../(all)/(dashboard)/sidebar-dropdown.tsx | 2 +- .../(dashboard)/sidebar-help-section.tsx | 2 +- .../app/(all)/(dashboard)/sidebar-menu.tsx | 2 +- apps/admin/app/(all)/(dashboard)/sidebar.tsx | 2 +- .../(dashboard)/workspace/create/form.tsx | 4 +- .../(dashboard)/workspace/create/page.tsx | 24 +- .../app/(all)/(dashboard)/workspace/page.tsx | 2 +- apps/admin/app/(all)/(home)/auth-banner.tsx | 4 +- apps/admin/app/(all)/(home)/auth-header.tsx | 16 +- apps/admin/app/(all)/(home)/page.tsx | 5 +- apps/admin/app/(all)/(home)/sign-in-form.tsx | 4 +- apps/admin/app/(all)/instance.provider.tsx | 2 +- apps/admin/app/(all)/store.provider.tsx | 4 +- apps/admin/app/(all)/toast.tsx | 4 +- apps/admin/app/(all)/user.provider.tsx | 2 +- apps/admin/app/compat/next/image.tsx | 5 +- apps/admin/app/compat/next/link.tsx | 12 +- apps/admin/app/components/404.tsx | 46 +- .../authentication/authentication-modes.tsx | 2 +- .../ce/components/common/upgrade-button.tsx | 18 +- .../authentication-method-card.tsx | 4 +- .../authentication/email-config-switch.tsx | 2 +- .../authentication/gitea-config.tsx | 2 +- .../authentication/github-config.tsx | 2 +- .../authentication/gitlab-config.tsx | 2 +- .../authentication/google-config.tsx | 2 +- .../authentication/password-config-switch.tsx | 2 +- apps/admin/core/components/common/banner.tsx | 4 +- .../components/common/breadcrumb-link.tsx | 4 +- .../core/components/common/code-block.tsx | 28 +- .../common/confirm-discard-modal.tsx | 4 +- .../components/common/controller-input.tsx | 4 +- .../core/components/common/copy-field.tsx | 4 +- .../core/components/common/empty-state.tsx | 49 +- .../core/components/common/logo-spinner.tsx | 4 +- .../core/components/common/page-header.tsx | 4 +- .../core/components/instance/failure.tsx | 2 +- .../core/components/instance/form-header.tsx | 14 +- .../instance/instance-not-ready.tsx | 38 +- .../core/components/instance/loading.tsx | 4 +- .../core/components/instance/setup-form.tsx | 4 +- apps/admin/core/components/new-user-popup.tsx | 2 +- .../core/components/workspace/list-item.tsx | 2 +- apps/space/app/compat/next/image.tsx | 5 +- apps/space/app/compat/next/link.tsx | 12 +- apps/space/app/error.tsx | 5 +- apps/space/app/issues/[anchor]/page.tsx | 2 +- apps/space/app/not-found.tsx | 27 +- apps/space/app/page.tsx | 2 +- .../editor/embeds/mentions/root.tsx | 4 +- .../ce/components/issue-layouts/root.tsx | 4 +- apps/space/ce/components/navbar/index.tsx | 4 +- .../account/auth-forms/auth-banner.tsx | 4 +- .../account/auth-forms/auth-header.tsx | 4 +- .../account/auth-forms/auth-root.tsx | 2 +- .../components/account/auth-forms/email.tsx | 2 +- .../account/auth-forms/password.tsx | 2 +- .../account/auth-forms/unique-code.tsx | 4 +- .../account/terms-and-conditions.tsx | 4 +- .../components/account/user-logged-in.tsx | 2 +- .../core/components/common/logo-spinner.tsx | 4 +- .../core/components/common/powered-by.tsx | 4 +- .../core/components/common/project-logo.tsx | 4 +- .../editor/embeds/mentions/root.tsx | 4 +- .../editor/embeds/mentions/user.tsx | 2 +- .../components/editor/lite-text-editor.tsx | 5 +- .../components/editor/rich-text-editor.tsx | 5 +- apps/space/core/components/editor/toolbar.tsx | 4 +- .../instance/instance-failure-view.tsx | 4 +- .../filters/applied-filters/filters-list.tsx | 2 +- .../issues/filters/applied-filters/label.tsx | 4 +- .../filters/applied-filters/priority.tsx | 4 +- .../issues/filters/applied-filters/root.tsx | 2 +- .../issues/filters/applied-filters/state.tsx | 2 +- .../issues/filters/helpers/dropdown.tsx | 4 +- .../issues/filters/helpers/filter-header.tsx | 26 +- .../issues/filters/helpers/filter-option.tsx | 4 +- .../core/components/issues/filters/labels.tsx | 11 +- .../components/issues/filters/priority.tsx | 2 +- .../core/components/issues/filters/root.tsx | 2 +- .../components/issues/filters/selection.tsx | 2 +- .../core/components/issues/filters/state.tsx | 2 +- .../components/issues/issue-layouts/error.tsx | 30 +- .../issues/issue-layouts/issue-layout-HOC.tsx | 2 +- .../issue-layouts/kanban/base-kanban-root.tsx | 2 +- .../issue-layouts/kanban/block-reactions.tsx | 2 +- .../issues/issue-layouts/kanban/block.tsx | 4 +- .../issue-layouts/kanban/blocks-list.tsx | 2 +- .../issues/issue-layouts/kanban/default.tsx | 2 +- .../kanban/headers/group-by-card.tsx | 2 +- .../kanban/headers/sub-group-by-card.tsx | 2 +- .../issue-layouts/kanban/kanban-group.tsx | 11 +- .../issues/issue-layouts/kanban/swimlanes.tsx | 20 +- .../issue-layouts/list/base-list-root.tsx | 2 +- .../issues/issue-layouts/list/block.tsx | 2 +- .../issues/issue-layouts/list/blocks-list.tsx | 4 +- .../issues/issue-layouts/list/default.tsx | 2 +- .../list/headers/group-by-card.tsx | 2 +- .../issues/issue-layouts/list/list-group.tsx | 35 +- .../properties/all-properties.tsx | 2 +- .../issues/issue-layouts/properties/cycle.tsx | 2 +- .../issue-layouts/properties/due-date.tsx | 2 +- .../issue-layouts/properties/labels.tsx | 2 +- .../issue-layouts/properties/member.tsx | 4 +- .../issue-layouts/properties/modules.tsx | 2 +- .../issue-layouts/properties/priority.tsx | 6 +- .../issues/issue-layouts/properties/state.tsx | 2 +- .../components/issues/issue-layouts/root.tsx | 2 +- .../with-display-properties-HOC.tsx | 27 +- .../components/issues/navbar/controls.tsx | 2 +- .../components/issues/navbar/layout-icon.tsx | 6 +- .../issues/navbar/layout-selection.tsx | 2 +- .../core/components/issues/navbar/root.tsx | 2 +- .../core/components/issues/navbar/theme.tsx | 2 +- .../components/issues/navbar/user-avatar.tsx | 2 +- .../peek-overview/comment/add-comment.tsx | 2 +- .../comment/comment-detail-card.tsx | 3 +- .../comment/comment-reactions.tsx | 2 +- .../peek-overview/full-screen-peek-view.tsx | 2 +- .../issues/peek-overview/header.tsx | 2 +- .../issues/peek-overview/issue-activity.tsx | 2 +- .../issues/peek-overview/issue-details.tsx | 2 +- .../issues/peek-overview/issue-properties.tsx | 5 +- .../issues/peek-overview/issue-reaction.tsx | 2 +- .../issues/peek-overview/layout.tsx | 2 +- .../issues/peek-overview/side-peek-view.tsx | 2 +- .../reactions/issue-emoji-reactions.tsx | 2 +- .../issues/reactions/issue-vote-reactions.tsx | 2 +- apps/space/core/components/ui/icon.tsx | 6 +- apps/space/core/components/ui/not-found.tsx | 32 +- apps/space/core/components/views/auth.tsx | 16 +- apps/space/core/components/views/header.tsx | 16 +- apps/space/core/lib/instance-provider.tsx | 2 +- apps/space/core/lib/store-provider.tsx | 4 +- apps/space/core/lib/toast-provider.tsx | 4 +- .../[workspaceSlug]/(projects)/_sidebar.tsx | 2 +- .../(projects)/active-cycles/header.tsx | 2 +- .../(projects)/analytics/[tabId]/header.tsx | 2 +- .../(projects)/analytics/[tabId]/page.tsx | 4 +- .../(projects)/browse/[workItem]/header.tsx | 2 +- .../(projects)/drafts/header.tsx | 2 +- .../(projects)/extended-project-sidebar.tsx | 2 +- .../(projects)/extended-sidebar-wrapper.tsx | 2 +- .../(projects)/extended-sidebar.tsx | 2 +- .../[workspaceSlug]/(projects)/header.tsx | 2 +- .../(projects)/profile/[userId]/header.tsx | 2 +- .../profile/[userId]/mobile-header.tsx | 2 +- .../(projects)/profile/[userId]/navbar.tsx | 4 +- .../(detail)/[projectId]/archives/header.tsx | 2 +- .../archives/issues/(detail)/header.tsx | 2 +- .../[projectId]/cycles/(detail)/header.tsx | 2 +- .../cycles/(detail)/mobile-header.tsx | 2 +- .../[projectId]/cycles/(list)/header.tsx | 2 +- .../cycles/(list)/mobile-header.tsx | 2 +- .../[projectId]/issues/(list)/header.tsx | 4 +- .../issues/(list)/mobile-header.tsx | 2 +- .../[projectId]/modules/(detail)/header.tsx | 2 +- .../modules/(detail)/mobile-header.tsx | 2 +- .../[projectId]/modules/(list)/header.tsx | 2 +- .../modules/(list)/mobile-header.tsx | 2 +- .../[projectId]/pages/(detail)/header.tsx | 2 +- .../[projectId]/pages/(list)/header.tsx | 2 +- .../views/(detail)/[viewId]/header.tsx | 2 +- .../[projectId]/views/(list)/header.tsx | 2 +- .../views/(list)/mobile-header.tsx | 2 +- .../projects/(detail)/archives/page.tsx | 5 +- .../(projects)/projects/(list)/page.tsx | 5 +- .../[workspaceSlug]/(projects)/sidebar.tsx | 2 +- .../(projects)/star-us-link.tsx | 4 +- .../(projects)/stickies/header.tsx | 2 +- .../(projects)/workspace-views/header.tsx | 2 +- .../(workspace)/mobile-header-tabs.tsx | 2 +- .../settings/(workspace)/sidebar.tsx | 16 +- .../(settings)/settings/account/sidebar.tsx | 6 +- .../(settings)/settings/projects/page.tsx | 4 +- .../(all)/accounts/reset-password/page.tsx | 23 +- .../app/(all)/accounts/set-password/page.tsx | 23 +- apps/web/app/(all)/layout.preload.tsx | 9 +- apps/web/app/(all)/profile/security/page.tsx | 5 +- apps/web/app/(all)/profile/sidebar.tsx | 8 +- apps/web/app/(all)/sign-up/page.tsx | 17 +- apps/web/app/(home)/page.tsx | 16 +- apps/web/app/compat/next/image.tsx | 7 +- apps/web/app/compat/next/link.tsx | 12 +- apps/web/app/compat/next/script.tsx | 5 +- apps/web/app/error/dev.tsx | 29 +- apps/web/app/error/index.tsx | 4 +- apps/web/app/error/prod.tsx | 4 +- apps/web/app/not-found.tsx | 47 +- apps/web/app/provider.tsx | 24 +- apps/web/ce/components/active-cycles/root.tsx | 4 +- .../workspace-active-cycles-upgrade.tsx | 2 +- apps/web/ce/components/app-rail/root.tsx | 4 +- .../components/automations/list/wrapper.tsx | 4 +- apps/web/ce/components/automations/root.tsx | 4 +- apps/web/ce/components/breadcrumbs/common.tsx | 4 +- .../breadcrumbs/project-feature.tsx | 4 +- .../web/ce/components/breadcrumbs/project.tsx | 2 +- .../work-item-actions/change-state-list.tsx | 2 +- .../command-palette/modals/project-level.tsx | 2 +- .../modals/work-item-level.tsx | 2 +- .../modals/workspace-level.tsx | 2 +- .../power-k/pages/context-based/root.tsx | 4 +- .../work-item/state-menu-item.tsx | 4 +- .../power-k/search/no-results-command.tsx | 4 +- .../ce/components/comments/comment-block.tsx | 2 +- .../components/common/extended-app-header.tsx | 2 +- .../common/subscription/subscription-pill.tsx | 4 +- .../components/cycles/active-cycle/root.tsx | 11 +- .../components/cycles/additional-actions.tsx | 4 +- .../cycles/analytics-sidebar/base.tsx | 2 +- .../cycles/analytics-sidebar/root.tsx | 4 +- .../ce/components/cycles/end-cycle/modal.tsx | 4 +- .../ce/components/de-dupe/de-dupe-button.tsx | 4 +- .../de-dupe/duplicate-modal/root.tsx | 4 +- .../de-dupe/duplicate-popover/root.tsx | 2 +- .../de-dupe/issue-block/button-label.tsx | 4 +- .../editor/embeds/mentions/root.tsx | 4 +- .../ce/components/epics/epic-modal/modal.tsx | 4 +- .../estimates/estimate-list-item-buttons.tsx | 2 +- .../estimates/inputs/time-input.tsx | 4 +- .../ce/components/estimates/points/delete.tsx | 4 +- .../ce/components/estimates/update/modal.tsx | 4 +- .../gantt-chart/blocks/block-row-list.tsx | 4 +- .../gantt-chart/blocks/blocks-list.tsx | 4 +- .../blockDraggables/left-draggable.tsx | 4 +- .../blockDraggables/right-draggable.tsx | 4 +- .../dependency/dependency-paths.tsx | 4 +- .../dependency/draggable-dependency-path.tsx | 4 +- .../global/product-updates-header.tsx | 2 +- .../ce/components/global/version-number.tsx | 4 +- apps/web/ce/components/home/header.tsx | 4 +- .../web/ce/components/home/peek-overviews.tsx | 12 +- apps/web/ce/components/inbox/source-pill.tsx | 4 +- .../instance/maintenance-message.tsx | 4 +- .../issues/bulk-operations/root.tsx | 2 +- .../filters/applied-filters/issue-types.tsx | 4 +- .../components/issues/filters/issue-types.tsx | 4 +- .../issues/filters/team-project.tsx | 4 +- apps/web/ce/components/issues/header.tsx | 2 +- .../issue-detail-widgets/action-buttons.tsx | 4 +- .../issue-detail-widgets/collapsibles.tsx | 4 +- .../issues/issue-detail-widgets/modals.tsx | 4 +- .../additional-activity-root.tsx | 4 +- .../issue-details/additional-properties.tsx | 4 +- .../issues/issue-details/issue-creator.tsx | 4 +- .../issues/issue-details/issue-identifier.tsx | 10 +- .../issue-properties-activity/root.tsx | 4 +- .../issue-details/issue-type-activity.tsx | 4 +- .../issue-details/issue-type-switcher.tsx | 2 +- .../issue-details/parent-select-root.tsx | 2 +- .../issue-details/sidebar.tsx/date-alert.tsx | 4 +- .../sidebar/transfer-hop-info.tsx | 4 +- .../issue-layouts/additional-properties.tsx | 4 +- .../empty-states/team-issues.tsx | 4 +- .../empty-states/team-project.tsx | 4 +- .../empty-states/team-view-issues.tsx | 4 +- .../issues/issue-layouts/issue-stats.tsx | 4 +- .../duplicate-modal.tsx | 4 +- .../issues/issue-modal/issue-type-select.tsx | 4 +- .../modal-additional-properties.tsx | 4 +- .../issues/issue-modal/provider.tsx | 2 +- .../issues/issue-modal/template-select.tsx | 4 +- .../ce/components/issues/quick-add/root.tsx | 2 +- .../issues/worklog/activity/filter-root.tsx | 4 +- .../issues/worklog/activity/root.tsx | 4 +- .../activity/worklog-create-button.tsx | 4 +- .../issues/worklog/property/root.tsx | 4 +- .../license/modal/upgrade-modal.tsx | 2 +- .../pages/editor/ai/ask-pi-menu.tsx | 4 +- .../ce/components/pages/editor/ai/menu.tsx | 4 +- .../editor/embed/issue-embed-upgrade-card.tsx | 50 +- .../web/ce/components/pages/extra-actions.tsx | 4 +- .../pages/header/collaborators-list.tsx | 4 +- .../components/pages/header/lock-control.tsx | 2 +- .../components/pages/header/move-control.tsx | 4 +- .../components/pages/header/share-control.tsx | 4 +- .../web/ce/components/pages/modals/modals.tsx | 4 +- .../pages/modals/move-page-modal.tsx | 4 +- .../navigation-pane/tab-panels/assets.tsx | 4 +- .../tab-panels/empty-states/assets.tsx | 4 +- .../tab-panels/empty-states/outline.tsx | 4 +- .../pages/navigation-pane/tab-panels/root.tsx | 6 +- .../components/preferences/theme-switcher.tsx | 154 ++-- .../components/projects/create/attributes.tsx | 4 +- .../ce/components/projects/create/root.tsx | 2 +- .../projects/create/template-select.tsx | 4 +- apps/web/ce/components/projects/header.tsx | 4 +- .../ce/components/projects/mobile-header.tsx | 2 +- apps/web/ce/components/projects/page.tsx | 2 +- .../projects/settings/intake/header.tsx | 2 +- .../projects/teamspaces/teamspace-list.tsx | 4 +- .../rich-filters/filter-value-input/root.tsx | 11 +- .../ce/components/sidebar/app-switcher.tsx | 4 +- .../sidebar/project-navigation-root.tsx | 4 +- .../ce/components/views/access-controller.tsx | 4 +- .../views/filters/access-filter.tsx | 4 +- apps/web/ce/components/views/helper.tsx | 12 +- .../web/ce/components/views/publish/modal.tsx | 4 +- .../ce/components/workflow/state-option.tsx | 2 +- .../workflow/workflow-disabled-message.tsx | 4 +- .../workflow/workflow-disabled-overlay.tsx | 4 +- .../workflow/workflow-group-tree.tsx | 4 +- .../workspace-notifications/list-root.tsx | 4 +- .../notification-card/root.tsx | 2 +- .../ce/components/workspace/app-switcher.tsx | 4 +- .../billing/billing-actions-button.tsx | 4 +- .../billing/comparison/frequency-toggle.tsx | 2 +- .../billing/comparison/plan-detail.tsx | 2 +- .../workspace/billing/comparison/root.tsx | 2 +- .../ce/components/workspace/billing/root.tsx | 2 +- .../components/workspace/content-wrapper.tsx | 16 +- .../workspace/delete-workspace-modal.tsx | 2 +- .../workspace/delete-workspace-section.tsx | 2 +- .../ce/components/workspace/edition-badge.tsx | 2 +- .../workspace/members/invite-modal.tsx | 4 +- .../workspace/sidebar/app-search.tsx | 2 +- .../sidebar/extended-sidebar-item.tsx | 2 +- .../workspace/sidebar/sidebar-item.tsx | 4 +- .../workspace/sidebar/teams-sidebar-list.tsx | 4 +- .../ce/components/workspace/upgrade-badge.tsx | 4 +- apps/web/ce/layouts/project-wrapper.tsx | 2 +- apps/web/ce/layouts/workspace-wrapper.tsx | 2 +- .../account/auth-forms/auth-banner.tsx | 4 +- .../account/auth-forms/auth-header.tsx | 2 +- .../account/auth-forms/auth-root.tsx | 2 +- .../account/auth-forms/common/container.tsx | 12 +- .../account/auth-forms/common/header.tsx | 14 +- .../components/account/auth-forms/email.tsx | 2 +- .../auth-forms/forgot-password-popover.tsx | 4 +- .../account/auth-forms/forgot-password.tsx | 2 +- .../account/auth-forms/form-root.tsx | 2 +- .../account/auth-forms/password.tsx | 2 +- .../account/auth-forms/reset-password.tsx | 2 +- .../account/auth-forms/set-password.tsx | 2 +- .../account/auth-forms/unique-code.tsx | 4 +- .../account/deactivate-account-modal.tsx | 4 +- .../account/terms-and-conditions.tsx | 32 +- .../analytics/analytics-filter-actions.tsx | 2 +- .../analytics/analytics-section-wrapper.tsx | 4 +- .../analytics/analytics-wrapper.tsx | 4 +- .../core/components/analytics/empty-state.tsx | 5 +- .../components/analytics/insight-card.tsx | 4 +- .../analytics/insight-table/loader.tsx | 46 +- .../analytics/insight-table/root.tsx | 6 +- .../web/core/components/analytics/loaders.tsx | 36 +- .../overview/active-project-item.tsx | 9 +- .../analytics/overview/active-projects.tsx | 2 +- .../analytics/overview/project-insights.tsx | 10 +- .../components/analytics/overview/root.tsx | 22 +- .../analytics/select/analytics-params.tsx | 2 +- .../components/analytics/select/project.tsx | 2 +- .../analytics/select/select-x-axis.tsx | 4 +- .../analytics/select/select-y-axis.tsx | 2 +- .../components/analytics/total-insights.tsx | 7 +- .../core/components/analytics/trend-piece.tsx | 4 +- .../work-items/created-vs-resolved.tsx | 2 +- .../work-items/customized-insights.tsx | 8 +- .../analytics/work-items/modal/content.tsx | 2 +- .../analytics/work-items/modal/header.tsx | 2 +- .../analytics/work-items/modal/index.tsx | 2 +- .../analytics/work-items/priority-chart.tsx | 2 +- .../components/analytics/work-items/root.tsx | 22 +- .../work-items/workitems-insight-table.tsx | 2 +- .../api-token/delete-token-modal.tsx | 4 +- .../core/components/api-token/empty-state.tsx | 4 +- .../api-token/modal/create-token-modal.tsx | 4 +- .../core/components/api-token/modal/form.tsx | 4 +- .../modal/generated-token-details.tsx | 4 +- .../components/api-token/token-list-item.tsx | 4 +- .../components/archives/archive-tabs-list.tsx | 2 +- .../components/auth-screens/auth-base.tsx | 16 +- .../core/components/auth-screens/footer.tsx | 24 +- .../core/components/auth-screens/header.tsx | 2 +- .../auth-screens/not-authorized-view.tsx | 2 +- .../auth-screens/project/join-project.tsx | 4 +- .../auth-screens/workspace/not-a-member.tsx | 52 +- .../automation/auto-archive-automation.tsx | 2 +- .../automation/auto-close-automation.tsx | 2 +- .../automation/select-month-modal.tsx | 4 +- .../components/base-layouts/gantt/layout.tsx | 4 +- .../components/base-layouts/gantt/sidebar.tsx | 2 +- .../base-layouts/kanban/group-header.tsx | 26 +- .../components/base-layouts/kanban/group.tsx | 4 +- .../components/base-layouts/kanban/item.tsx | 4 +- .../components/base-layouts/kanban/layout.tsx | 4 +- .../base-layouts/layout-switcher.tsx | 4 +- .../base-layouts/list/group-header.tsx | 22 +- .../components/base-layouts/list/group.tsx | 4 +- .../components/base-layouts/list/item.tsx | 4 +- .../components/base-layouts/list/layout.tsx | 4 +- .../base-layouts/loaders/layout-loader.tsx | 4 +- .../core/components/comments/card/display.tsx | 2 +- .../components/comments/card/edit-form.tsx | 2 +- .../core/components/comments/card/root.tsx | 2 +- .../components/comments/comment-create.tsx | 2 +- .../components/comments/comment-reaction.tsx | 2 +- .../web/core/components/comments/comments.tsx | 2 +- .../components/comments/quick-actions.tsx | 11 +- .../core/components/common/access-field.tsx | 4 +- .../common/activity/activity-block.tsx | 4 +- .../common/activity/activity-item.tsx | 2 +- .../core/components/common/activity/user.tsx | 2 +- .../common/applied-filters/date.tsx | 2 +- .../common/applied-filters/members.tsx | 2 +- .../components/common/breadcrumb-link.tsx | 31 +- .../web/core/components/common/count-chip.tsx | 4 +- .../core/components/common/empty-state.tsx | 49 +- .../components/common/filters/created-at.tsx | 2 +- .../components/common/filters/created-by.tsx | 2 +- .../common/latest-feature-block.tsx | 4 +- .../core/components/common/logo-spinner.tsx | 4 +- .../components/common/new-empty-state.tsx | 11 +- .../components/common/page-access-icon.tsx | 24 +- apps/web/core/components/common/pro-icon.tsx | 4 +- .../core/components/common/switcher-label.tsx | 14 +- apps/web/core/components/core/activity.tsx | 21 +- apps/web/core/components/core/app-header.tsx | 2 +- .../components/core/content-overflow-HOC.tsx | 2 +- .../core/components/core/content-wrapper.tsx | 12 +- .../description-versions/dropdown-item.tsx | 2 +- .../core/description-versions/dropdown.tsx | 2 +- .../core/description-versions/modal.tsx | 2 +- .../core/description-versions/root.tsx | 2 +- .../core/filters/date-filter-modal.tsx | 4 +- .../core/filters/date-filter-select.tsx | 46 +- .../components/core/image-picker-popover.tsx | 2 +- .../core/components/core/list/list-item.tsx | 4 +- .../core/components/core/list/list-root.tsx | 4 +- .../modals/bulk-delete-issues-modal-item.tsx | 2 +- .../core/modals/bulk-delete-issues-modal.tsx | 2 +- .../modals/existing-issues-list-modal.tsx | 4 +- .../core/modals/gpt-assistant-popover.tsx | 4 +- .../modals/issue-search-modal-empty-state.tsx | 15 +- .../core/modals/user-image-upload-modal.tsx | 2 +- .../modals/workspace-image-upload-modal.tsx | 2 +- .../multiple-select/entity-select-action.tsx | 2 +- .../multiple-select/group-select-action.tsx | 4 +- .../core/multiple-select/select-group.tsx | 2 +- apps/web/core/components/core/page-title.tsx | 4 +- .../components/core/render-if-visible-HOC.tsx | 4 +- .../core/sidebar/progress-chart.tsx | 4 +- .../core/sidebar/progress-stats/assignee.tsx | 2 +- .../core/sidebar/progress-stats/label.tsx | 2 +- .../sidebar/progress-stats/state_group.tsx | 2 +- .../sidebar/sidebar-menu-hamburger-toggle.tsx | 2 +- .../core/sidebar/single-progress-stats.tsx | 40 +- .../core/theme/color-picker-input.tsx | 4 +- .../core/theme/custom-theme-selector.tsx | 2 +- .../components/core/theme/theme-switch.tsx | 4 +- .../cycles/active-cycle/cycle-stats.tsx | 2 +- .../cycles/active-cycle/productivity.tsx | 2 +- .../cycles/active-cycle/progress.tsx | 2 +- .../analytics-sidebar/issue-progress.tsx | 2 +- .../analytics-sidebar/progress-stats.tsx | 2 +- .../cycles/analytics-sidebar/root.tsx | 2 +- .../analytics-sidebar/sidebar-details.tsx | 2 +- .../analytics-sidebar/sidebar-header.tsx | 2 +- .../cycles/applied-filters/date.tsx | 2 +- .../cycles/applied-filters/root.tsx | 2 +- .../cycles/applied-filters/status.tsx | 2 +- .../cycles/archived-cycles/header.tsx | 2 +- .../cycles/archived-cycles/modal.tsx | 4 +- .../cycles/archived-cycles/root.tsx | 2 +- .../cycles/archived-cycles/view.tsx | 2 +- .../components/cycles/cycle-peek-overview.tsx | 2 +- .../components/cycles/cycles-view-header.tsx | 2 +- .../core/components/cycles/cycles-view.tsx | 2 +- .../core/components/cycles/delete-modal.tsx | 2 +- .../dropdowns/estimate-type-dropdown.tsx | 2 +- .../cycles/dropdowns/filters/end-date.tsx | 2 +- .../cycles/dropdowns/filters/root.tsx | 2 +- .../cycles/dropdowns/filters/start-date.tsx | 2 +- .../cycles/dropdowns/filters/status.tsx | 2 +- apps/web/core/components/cycles/form.tsx | 4 +- .../cycles/list/cycle-list-group-header.tsx | 4 +- .../cycles/list/cycle-list-item-action.tsx | 2 +- .../list/cycle-list-project-group-header.tsx | 2 +- .../cycles/list/cycles-list-item.tsx | 2 +- .../cycles/list/cycles-list-map.tsx | 4 +- apps/web/core/components/cycles/list/root.tsx | 2 +- apps/web/core/components/cycles/modal.tsx | 4 +- .../core/components/cycles/quick-actions.tsx | 23 +- .../cycles/transfer-issues-modal.tsx | 2 +- .../components/cycles/transfer-issues.tsx | 4 +- .../web/core/components/dropdowns/buttons.tsx | 16 +- .../dropdowns/cycle/cycle-options.tsx | 2 +- .../core/components/dropdowns/cycle/index.tsx | 2 +- .../core/components/dropdowns/date-range.tsx | 2 +- apps/web/core/components/dropdowns/date.tsx | 2 +- .../core/components/dropdowns/estimate.tsx | 2 +- apps/web/core/components/dropdowns/layout.tsx | 2 +- .../components/dropdowns/member/avatar.tsx | 2 +- .../core/components/dropdowns/member/base.tsx | 2 +- .../components/dropdowns/member/dropdown.tsx | 2 +- .../dropdowns/member/member-options.tsx | 2 +- .../core/components/dropdowns/merged-date.tsx | 2 +- .../core/components/dropdowns/module/base.tsx | 2 +- .../dropdowns/module/button-content.tsx | 4 +- .../components/dropdowns/module/dropdown.tsx | 2 +- .../dropdowns/module/module-options.tsx | 2 +- .../core/components/dropdowns/priority.tsx | 17 +- .../components/dropdowns/project/base.tsx | 2 +- .../components/dropdowns/project/dropdown.tsx | 2 +- .../core/components/dropdowns/state/base.tsx | 4 +- .../components/dropdowns/state/dropdown.tsx | 2 +- .../components/editor/document/editor.tsx | 5 +- .../editor/embeds/mentions/root.tsx | 4 +- .../editor/embeds/mentions/user.tsx | 2 +- .../components/editor/lite-text/editor.tsx | 5 +- .../editor/lite-text/lite-toolbar.tsx | 40 +- .../components/editor/lite-text/toolbar.tsx | 4 +- .../core/components/editor/pdf/document.tsx | 4 +- .../rich-text/description-input/loader.tsx | 4 +- .../rich-text/description-input/root.tsx | 2 +- .../components/editor/rich-text/editor.tsx | 5 +- .../editor/sticky-editor/color-palette.tsx | 4 +- .../editor/sticky-editor/editor.tsx | 5 +- .../editor/sticky-editor/toolbar.tsx | 4 +- .../empty-state/comic-box-button.tsx | 4 +- .../empty-state/detailed-empty-state-root.tsx | 31 +- .../empty-state/section-empty-state-root.tsx | 4 +- .../empty-state/simple-empty-state-root.tsx | 2 +- .../components/estimates/create/modal.tsx | 2 +- .../components/estimates/create/stage-one.tsx | 4 +- .../components/estimates/delete/modal.tsx | 2 +- .../components/estimates/empty-screen.tsx | 4 +- .../estimates/estimate-disable-switch.tsx | 2 +- .../estimates/estimate-list-item.tsx | 2 +- .../components/estimates/estimate-list.tsx | 2 +- .../components/estimates/estimate-search.tsx | 2 +- .../estimates/inputs/number-input.tsx | 4 +- .../core/components/estimates/inputs/root.tsx | 4 +- .../estimates/inputs/text-input.tsx | 4 +- .../components/estimates/loader-screen.tsx | 18 +- .../estimates/points/create-root.tsx | 2 +- .../components/estimates/points/create.tsx | 2 +- .../components/estimates/points/preview.tsx | 2 +- .../components/estimates/points/update.tsx | 2 +- .../components/estimates/radio-select.tsx | 6 +- apps/web/core/components/estimates/root.tsx | 2 +- .../core/components/exporter/export-form.tsx | 7 +- .../core/components/exporter/export-modal.tsx | 7 +- apps/web/core/components/exporter/guide.tsx | 2 +- .../core/components/exporter/prev-exports.tsx | 2 +- .../components/exporter/single-export.tsx | 4 +- .../gantt-chart/blocks/block-row.tsx | 2 +- .../components/gantt-chart/blocks/block.tsx | 2 +- .../components/gantt-chart/chart/header.tsx | 2 +- .../gantt-chart/chart/main-content.tsx | 2 +- .../components/gantt-chart/chart/root.tsx | 2 +- .../chart/timeline-drag-helper.tsx | 2 +- .../gantt-chart/chart/views/month.tsx | 2 +- .../gantt-chart/chart/views/quarter.tsx | 2 +- .../gantt-chart/chart/views/week.tsx | 2 +- .../gantt-chart/helpers/add-block.tsx | 2 +- .../blockResizables/left-resizable.tsx | 2 +- .../blockResizables/right-resizable.tsx | 2 +- .../gantt-chart/helpers/draggable.tsx | 2 +- apps/web/core/components/gantt-chart/root.tsx | 2 +- .../gantt-chart/sidebar/gantt-dnd-HOC.tsx | 2 +- .../gantt-chart/sidebar/issues/block.tsx | 2 +- .../gantt-chart/sidebar/issues/sidebar.tsx | 2 +- .../gantt-chart/sidebar/modules/block.tsx | 2 +- .../gantt-chart/sidebar/modules/sidebar.tsx | 2 +- .../components/gantt-chart/sidebar/root.tsx | 2 +- .../global/product-updates/footer.tsx | 4 +- .../global/product-updates/modal.tsx | 2 +- .../components/global/timezone-select.tsx | 2 +- .../home/home-dashboard-widgets.tsx | 2 +- apps/web/core/components/home/root.tsx | 2 +- .../core/components/home/user-greetings.tsx | 4 +- .../home/widgets/empty-states/links.tsx | 4 +- .../home/widgets/empty-states/no-projects.tsx | 2 +- .../home/widgets/empty-states/recents.tsx | 4 +- .../home/widgets/empty-states/stickies.tsx | 4 +- .../components/home/widgets/links/action.tsx | 4 +- .../links/create-update-link-modal.tsx | 2 +- .../home/widgets/links/link-detail.tsx | 2 +- .../components/home/widgets/links/links.tsx | 2 +- .../components/home/widgets/links/root.tsx | 2 +- .../home/widgets/loaders/home-loader.tsx | 30 +- .../home/widgets/loaders/loader.tsx | 4 +- .../home/widgets/loaders/quick-links.tsx | 16 +- .../home/widgets/loaders/recent-activity.tsx | 28 +- .../components/home/widgets/manage/index.tsx | 2 +- .../manage/widget-item-drag-handle.tsx | 2 +- .../home/widgets/manage/widget-item.tsx | 2 +- .../home/widgets/manage/widget-list.tsx | 2 +- .../home/widgets/recents/filters.tsx | 7 +- .../components/home/widgets/recents/index.tsx | 2 +- .../components/home/widgets/recents/issue.tsx | 2 +- .../components/home/widgets/recents/page.tsx | 4 +- .../home/widgets/recents/project.tsx | 4 +- .../icons/attachment/audio-file-icon.tsx | 6 +- .../icons/attachment/css-file-icon.tsx | 6 +- .../icons/attachment/csv-file-icon.tsx | 6 +- .../icons/attachment/default-file-icon.tsx | 6 +- .../icons/attachment/doc-file-icon.tsx | 6 +- .../icons/attachment/document-icon.tsx | 32 +- .../icons/attachment/figma-file-icon.tsx | 6 +- .../icons/attachment/html-file-icon.tsx | 6 +- .../icons/attachment/img-file-icon.tsx | 6 +- .../icons/attachment/jpg-file-icon.tsx | 6 +- .../icons/attachment/js-file-icon.tsx | 6 +- .../icons/attachment/pdf-file-icon.tsx | 6 +- .../icons/attachment/png-file-icon.tsx | 6 +- .../icons/attachment/rar-file-icon.tsx | 6 +- .../icons/attachment/setting-icon.tsx | 37 +- .../icons/attachment/sheet-file-icon.tsx | 6 +- .../icons/attachment/svg-file-icon.tsx | 6 +- .../components/icons/attachment/tune-icon.tsx | 32 +- .../icons/attachment/txt-file-icon.tsx | 6 +- .../icons/attachment/video-file-icon.tsx | 6 +- .../icons/attachment/zip-file-icon.tsx | 6 +- .../components/icons/locked-component.tsx | 4 +- .../inbox/content/inbox-issue-header.tsx | 2 +- .../content/inbox-issue-mobile-header.tsx | 2 +- .../inbox/content/issue-properties.tsx | 2 +- .../components/inbox/content/issue-root.tsx | 2 +- .../core/components/inbox/content/root.tsx | 2 +- .../inbox-filter/applied-filters/date.tsx | 4 +- .../inbox-filter/applied-filters/label.tsx | 8 +- .../inbox-filter/applied-filters/member.tsx | 4 +- .../inbox-filter/applied-filters/priority.tsx | 2 +- .../inbox-filter/applied-filters/root.tsx | 2 +- .../inbox-filter/applied-filters/state.tsx | 2 +- .../inbox-filter/applied-filters/status.tsx | 2 +- .../inbox/inbox-filter/filters/date.tsx | 2 +- .../inbox-filter/filters/filter-selection.tsx | 2 +- .../inbox/inbox-filter/filters/labels.tsx | 9 +- .../inbox/inbox-filter/filters/members.tsx | 2 +- .../inbox/inbox-filter/filters/priority.tsx | 2 +- .../inbox/inbox-filter/filters/state.tsx | 2 +- .../inbox/inbox-filter/filters/status.tsx | 2 +- .../components/inbox/inbox-filter/root.tsx | 4 +- .../inbox/inbox-filter/sorting/order-by.tsx | 2 +- .../components/inbox/inbox-issue-status.tsx | 2 +- .../components/inbox/inbox-status-icon.tsx | 6 +- .../inbox/modals/create-modal/create-root.tsx | 2 +- .../modals/create-modal/issue-description.tsx | 2 +- .../modals/create-modal/issue-properties.tsx | 2 +- .../inbox/modals/create-modal/issue-title.tsx | 2 +- .../inbox/modals/create-modal/modal.tsx | 4 +- .../inbox/modals/decline-issue-modal.tsx | 4 +- .../inbox/modals/delete-issue-modal.tsx | 7 +- .../inbox/modals/select-duplicate.tsx | 4 +- .../inbox/modals/snooze-issue-modal.tsx | 4 +- apps/web/core/components/inbox/root.tsx | 2 +- .../inbox/sidebar/inbox-list-item.tsx | 2 +- .../components/inbox/sidebar/inbox-list.tsx | 2 +- .../core/components/inbox/sidebar/root.tsx | 2 +- .../components/instance/maintenance-view.tsx | 4 +- .../components/instance/not-ready-view.tsx | 4 +- .../integration/delete-import-modal.tsx | 4 +- .../components/integration/github/auth.tsx | 2 +- .../integration/github/import-configure.tsx | 9 +- .../integration/github/import-confirm.tsx | 32 +- .../integration/github/import-data.tsx | 2 +- .../integration/github/import-users.tsx | 4 +- .../integration/github/repo-details.tsx | 4 +- .../components/integration/github/root.tsx | 4 +- .../integration/github/select-repository.tsx | 4 +- .../integration/github/single-user-select.tsx | 4 +- .../web/core/components/integration/guide.tsx | 2 +- .../integration/jira/confirm-import.tsx | 4 +- .../integration/jira/give-details.tsx | 6 +- .../integration/jira/import-users.tsx | 4 +- .../integration/jira/jira-project-detail.tsx | 4 +- .../core/components/integration/jira/root.tsx | 4 +- .../components/integration/single-import.tsx | 2 +- .../integration/single-integration-card.tsx | 2 +- .../integration/slack/select-channel.tsx | 2 +- .../components/issues/archive-issue-modal.tsx | 4 +- .../issues/archived-issues-header.tsx | 2 +- .../issues/attachment/attachment-detail.tsx | 2 +- .../attachment/attachment-item-list.tsx | 2 +- .../attachment/attachment-list-item.tsx | 2 +- .../attachment-list-upload-item.tsx | 2 +- .../attachment/attachment-upload-details.tsx | 2 +- .../issues/attachment/attachment-upload.tsx | 2 +- .../issues/attachment/attachments-list.tsx | 2 +- .../attachment/delete-attachment-modal.tsx | 2 +- .../components/issues/attachment/root.tsx | 2 +- .../issues/bulk-operations/upgrade-banner.tsx | 4 +- .../issues/confirm-issue-discard.tsx | 4 +- .../create-issue-toast-action-items.tsx | 4 +- .../components/issues/delete-issue-modal.tsx | 2 +- apps/web/core/components/issues/filters.tsx | 2 +- .../issue-detail-widgets/action-buttons.tsx | 4 +- .../attachments/content.tsx | 2 +- .../attachments/quick-action-button.tsx | 2 +- .../issue-detail-widgets/attachments/root.tsx | 2 +- .../attachments/title.tsx | 2 +- .../issue-detail-widget-collapsibles.tsx | 2 +- .../issue-detail-widget-modals.tsx | 2 +- .../issue-detail-widgets/links/content.tsx | 4 +- .../links/quick-action-button.tsx | 2 +- .../issue-detail-widgets/links/root.tsx | 2 +- .../issue-detail-widgets/links/title.tsx | 2 +- .../relations/content.tsx | 2 +- .../relations/quick-action-button.tsx | 2 +- .../issue-detail-widgets/relations/root.tsx | 2 +- .../issue-detail-widgets/relations/title.tsx | 2 +- .../issues/issue-detail-widgets/root.tsx | 4 +- .../sub-issues/content.tsx | 2 +- .../sub-issues/display-filters.tsx | 2 +- .../sub-issues/filters.tsx | 2 +- .../sub-issues/issues-list/list-group.tsx | 2 +- .../sub-issues/issues-list/list-item.tsx | 2 +- .../sub-issues/issues-list/properties.tsx | 2 +- .../sub-issues/issues-list/root.tsx | 2 +- .../sub-issues/quick-action-button.tsx | 2 +- .../issue-detail-widgets/sub-issues/root.tsx | 2 +- .../sub-issues/title-actions.tsx | 2 +- .../issue-detail-widgets/sub-issues/title.tsx | 2 +- .../issue-detail-widgets/widget-button.tsx | 4 +- .../issues/issue-detail/cycle-select.tsx | 2 +- .../issue-activity/activity-comment-root.tsx | 2 +- .../issue-activity/activity-filter.tsx | 2 +- .../activity/actions/archived-at.tsx | 2 +- .../activity/actions/assignee.tsx | 2 +- .../activity/actions/attachment.tsx | 2 +- .../issue-activity/activity/actions/cycle.tsx | 2 +- .../activity/actions/default.tsx | 2 +- .../activity/actions/description.tsx | 2 +- .../activity/actions/estimate.tsx | 2 +- .../actions/helpers/activity-block.tsx | 4 +- .../activity/actions/helpers/issue-link.tsx | 4 +- .../activity/actions/helpers/issue-user.tsx | 4 +- .../issue-activity/activity/actions/inbox.tsx | 2 +- .../activity/actions/label-activity-chip.tsx | 4 +- .../issue-activity/activity/actions/label.tsx | 2 +- .../issue-activity/activity/actions/link.tsx | 2 +- .../activity/actions/module.tsx | 2 +- .../issue-activity/activity/actions/name.tsx | 2 +- .../activity/actions/parent.tsx | 2 +- .../activity/actions/priority.tsx | 2 +- .../activity/actions/relation.tsx | 2 +- .../activity/actions/start_date.tsx | 2 +- .../issue-activity/activity/actions/state.tsx | 2 +- .../activity/actions/target_date.tsx | 2 +- .../issue-activity/activity/activity-list.tsx | 2 +- .../issue-detail/issue-activity/loader.tsx | 52 +- .../issue-detail/issue-activity/root.tsx | 2 +- .../issue-detail/issue-activity/sort-root.tsx | 38 +- .../issue-detail-quick-actions.tsx | 2 +- .../issue-detail/label/create-label.tsx | 4 +- .../issue-detail/label/label-list-item.tsx | 2 +- .../issues/issue-detail/label/label-list.tsx | 2 +- .../issues/issue-detail/label/root.tsx | 2 +- .../label/select/label-select.tsx | 2 +- .../issues/issue-detail/label/select/root.tsx | 4 +- .../links/create-update-link-modal.tsx | 4 +- .../issues/issue-detail/links/link-detail.tsx | 4 +- .../issues/issue-detail/links/link-item.tsx | 2 +- .../issues/issue-detail/links/link-list.tsx | 2 +- .../issues/issue-detail/links/links.tsx | 2 +- .../issues/issue-detail/links/root.tsx | 4 +- .../issues/issue-detail/main-content.tsx | 2 +- .../issues/issue-detail/module-select.tsx | 2 +- .../issues/issue-detail/parent-select.tsx | 2 +- .../issues/issue-detail/parent/root.tsx | 2 +- .../issue-detail/parent/sibling-item.tsx | 2 +- .../issues/issue-detail/parent/siblings.tsx | 2 +- .../issue-detail/reactions/issue-comment.tsx | 2 +- .../issues/issue-detail/reactions/issue.tsx | 2 +- .../issues/issue-detail/relation-select.tsx | 2 +- .../components/issues/issue-detail/root.tsx | 2 +- .../issues/issue-detail/sidebar.tsx | 2 +- .../issues/issue-detail/subscription.tsx | 2 +- .../calendar/base-calendar-root.tsx | 2 +- .../issue-layouts/calendar/calendar.tsx | 2 +- .../issue-layouts/calendar/day-tile.tsx | 2 +- .../calendar/dropdowns/months-dropdown.tsx | 2 +- .../calendar/dropdowns/options-dropdown.tsx | 2 +- .../issues/issue-layouts/calendar/header.tsx | 2 +- .../calendar/issue-block-root.tsx | 2 +- .../issue-layouts/calendar/issue-blocks.tsx | 2 +- .../calendar/quick-add-issue-actions.tsx | 4 +- .../calendar/roots/cycle-root.tsx | 2 +- .../calendar/roots/module-root.tsx | 2 +- .../calendar/roots/project-root.tsx | 2 +- .../calendar/roots/project-view-root.tsx | 2 +- .../issue-layouts/calendar/week-days.tsx | 2 +- .../issue-layouts/calendar/week-header.tsx | 2 +- .../empty-states/archived-issues.tsx | 2 +- .../issue-layouts/empty-states/cycle.tsx | 2 +- .../empty-states/global-view.tsx | 2 +- .../issue-layouts/empty-states/index.tsx | 4 +- .../issue-layouts/empty-states/module.tsx | 2 +- .../empty-states/profile-view.tsx | 2 +- .../empty-states/project-epic.tsx | 4 +- .../empty-states/project-issues.tsx | 2 +- .../empty-states/project-view.tsx | 2 +- .../filters/applied-filters/cycle.tsx | 2 +- .../filters/applied-filters/date.tsx | 2 +- .../filters/applied-filters/label.tsx | 2 +- .../filters/applied-filters/members.tsx | 2 +- .../filters/applied-filters/module.tsx | 2 +- .../filters/applied-filters/priority.tsx | 2 +- .../filters/applied-filters/project.tsx | 2 +- .../filters/applied-filters/state-group.tsx | 2 +- .../filters/applied-filters/state.tsx | 2 +- .../display-filters-selection.tsx | 2 +- .../display-filters/display-properties.tsx | 2 +- .../header/display-filters/extra-options.tsx | 2 +- .../header/display-filters/group-by.tsx | 2 +- .../header/display-filters/order-by.tsx | 2 +- .../header/display-filters/sub-group-by.tsx | 2 +- .../filters/header/filters/assignee.tsx | 2 +- .../filters/header/filters/created-by.tsx | 2 +- .../filters/header/filters/cycle.tsx | 2 +- .../filters/header/filters/due-date.tsx | 2 +- .../filters/header/filters/labels.tsx | 10 +- .../filters/header/filters/mentions.tsx | 2 +- .../filters/header/filters/module.tsx | 2 +- .../filters/header/filters/priority.tsx | 2 +- .../filters/header/filters/project.tsx | 2 +- .../filters/header/filters/start-date.tsx | 2 +- .../filters/header/filters/state-group.tsx | 2 +- .../filters/header/filters/state.tsx | 2 +- .../filters/header/helpers/dropdown.tsx | 4 +- .../filters/header/helpers/filter-header.tsx | 26 +- .../filters/header/helpers/filter-option.tsx | 4 +- .../filters/header/layout-selection.tsx | 4 +- .../header/mobile-layout-selection.tsx | 6 +- .../issue-layouts/gantt/base-gantt-root.tsx | 2 +- .../issues/issue-layouts/gantt/blocks.tsx | 4 +- .../issue-layouts/group-drag-overlay.tsx | 4 +- .../issues/issue-layouts/issue-layout-HOC.tsx | 6 +- .../issue-layouts/kanban/base-kanban-root.tsx | 2 +- .../issues/issue-layouts/kanban/block.tsx | 4 +- .../issue-layouts/kanban/blocks-list.tsx | 2 +- .../issues/issue-layouts/kanban/default.tsx | 2 +- .../kanban/headers/group-by-card.tsx | 2 +- .../kanban/headers/sub-group-by-card.tsx | 2 +- .../issue-layouts/kanban/kanban-group.tsx | 2 +- .../issue-layouts/kanban/roots/cycle-root.tsx | 2 +- .../kanban/roots/module-root.tsx | 2 +- .../kanban/roots/profile-issues-root.tsx | 2 +- .../kanban/roots/project-root.tsx | 2 +- .../kanban/roots/project-view-root.tsx | 2 +- .../issues/issue-layouts/kanban/swimlanes.tsx | 74 +- .../issues/issue-layouts/layout-icon.tsx | 6 +- .../issue-layouts/list/base-list-root.tsx | 2 +- .../issues/issue-layouts/list/block-root.tsx | 2 +- .../issues/issue-layouts/list/block.tsx | 2 +- .../issues/issue-layouts/list/blocks-list.tsx | 4 +- .../issues/issue-layouts/list/default.tsx | 2 +- .../list/headers/group-by-card.tsx | 2 +- .../issues/issue-layouts/list/list-group.tsx | 2 +- .../list/roots/archived-issue-root.tsx | 2 +- .../issue-layouts/list/roots/cycle-root.tsx | 2 +- .../issue-layouts/list/roots/module-root.tsx | 2 +- .../list/roots/profile-issues-root.tsx | 2 +- .../issue-layouts/list/roots/project-root.tsx | 2 +- .../list/roots/project-view-root.tsx | 2 +- .../properties/all-properties.tsx | 2 +- .../properties/label-dropdown.tsx | 4 +- .../issue-layouts/properties/labels.tsx | 29 +- .../with-display-properties-HOC.tsx | 27 +- .../quick-action-dropdowns/all-issue.tsx | 19 +- .../quick-action-dropdowns/archived-issue.tsx | 19 +- .../quick-action-dropdowns/cycle-issue.tsx | 19 +- .../quick-action-dropdowns/issue-detail.tsx | 25 +- .../quick-action-dropdowns/module-issue.tsx | 19 +- .../quick-action-dropdowns/project-issue.tsx | 19 +- .../issue-layouts/quick-add/button/gantt.tsx | 2 +- .../issue-layouts/quick-add/button/kanban.tsx | 2 +- .../issue-layouts/quick-add/button/list.tsx | 2 +- .../quick-add/button/spreadsheet.tsx | 2 +- .../issue-layouts/quick-add/form/calendar.tsx | 2 +- .../issue-layouts/quick-add/form/gantt.tsx | 2 +- .../issue-layouts/quick-add/form/kanban.tsx | 2 +- .../issue-layouts/quick-add/form/list.tsx | 2 +- .../quick-add/form/spreadsheet.tsx | 2 +- .../issues/issue-layouts/quick-add/root.tsx | 2 +- .../roots/all-issue-layout-root.tsx | 2 +- .../roots/archived-issue-layout-root.tsx | 2 +- .../issue-layouts/roots/cycle-layout-root.tsx | 8 +- .../roots/module-layout-root.tsx | 6 +- .../roots/project-layout-root.tsx | 7 +- .../roots/project-view-layout-root.tsx | 6 +- .../spreadsheet/base-spreadsheet-root.tsx | 2 +- .../spreadsheet/columns/assignee-column.tsx | 2 +- .../spreadsheet/columns/attachment-column.tsx | 2 +- .../spreadsheet/columns/created-on-column.tsx | 2 +- .../spreadsheet/columns/cycle-column.tsx | 2 +- .../spreadsheet/columns/due-date-column.tsx | 2 +- .../spreadsheet/columns/estimate-column.tsx | 2 +- .../spreadsheet/columns/header-column.tsx | 4 +- .../spreadsheet/columns/label-column.tsx | 2 +- .../spreadsheet/columns/link-column.tsx | 2 +- .../spreadsheet/columns/module-column.tsx | 2 +- .../spreadsheet/columns/priority-column.tsx | 2 +- .../spreadsheet/columns/start-date-column.tsx | 2 +- .../spreadsheet/columns/state-column.tsx | 2 +- .../spreadsheet/columns/sub-issue-column.tsx | 2 +- .../spreadsheet/columns/updated-on-column.tsx | 2 +- .../spreadsheet/issue-column.tsx | 2 +- .../issue-layouts/spreadsheet/issue-row.tsx | 4 +- .../spreadsheet/roots/cycle-root.tsx | 2 +- .../spreadsheet/roots/module-root.tsx | 2 +- .../spreadsheet/roots/project-root.tsx | 2 +- .../spreadsheet/roots/project-view-root.tsx | 2 +- .../spreadsheet/roots/workspace-root.tsx | 2 +- .../spreadsheet/spreadsheet-header-column.tsx | 2 +- .../spreadsheet/spreadsheet-header.tsx | 2 +- .../spreadsheet/spreadsheet-table.tsx | 2 +- .../spreadsheet/spreadsheet-view.tsx | 2 +- .../components/issues/issue-layouts/utils.tsx | 4 +- .../components/issues/issue-modal/base.tsx | 2 +- .../components/default-properties.tsx | 2 +- .../components/description-editor.tsx | 2 +- .../issue-modal/components/parent-tag.tsx | 2 +- .../issue-modal/components/project-select.tsx | 2 +- .../issue-modal/components/title-input.tsx | 2 +- .../issues/issue-modal/draft-issue-layout.tsx | 2 +- .../components/issues/issue-modal/form.tsx | 2 +- .../components/issues/issue-modal/modal.tsx | 2 +- .../components/issues/issue-update-status.tsx | 2 +- apps/web/core/components/issues/label.tsx | 4 +- .../issues/parent-issues-list-modal.tsx | 6 +- .../components/issues/peek-overview/error.tsx | 4 +- .../issues/peek-overview/header.tsx | 2 +- .../issues/peek-overview/issue-detail.tsx | 2 +- .../issues/peek-overview/loader.tsx | 4 +- .../issues/peek-overview/properties.tsx | 2 +- .../components/issues/peek-overview/root.tsx | 2 +- .../components/issues/peek-overview/view.tsx | 2 +- .../components/issues/preview-card/date.tsx | 4 +- .../components/issues/preview-card/root.tsx | 2 +- .../issues/relations/issue-list-item.tsx | 2 +- .../issues/relations/issue-list.tsx | 2 +- .../issues/relations/properties.tsx | 2 +- .../core/components/issues/select/base.tsx | 2 +- .../components/issues/select/dropdown.tsx | 2 +- .../core/components/issues/title-input.tsx | 2 +- .../issues/workspace-draft/delete-modal.tsx | 4 +- .../workspace-draft/draft-issue-block.tsx | 2 +- .../draft-issue-properties.tsx | 2 +- .../issues/workspace-draft/empty-state.tsx | 2 +- .../issues/workspace-draft/loader.tsx | 4 +- .../issues/workspace-draft/quick-action.tsx | 2 +- .../issues/workspace-draft/root.tsx | 2 +- .../components/labels/delete-label-modal.tsx | 2 +- .../labels/label-block/label-item-block.tsx | 4 +- .../labels/label-block/label-name.tsx | 4 +- .../labels/label-drag-n-drop-HOC.tsx | 6 +- .../labels/project-setting-label-group.tsx | 2 +- .../labels/project-setting-label-item.tsx | 4 +- .../labels/project-setting-label-list.tsx | 2 +- .../modal/card/base-paid-plan-card.tsx | 2 +- .../license/modal/card/checkout-button.tsx | 2 +- .../license/modal/card/discount-info.tsx | 4 +- .../license/modal/card/free-plan.tsx | 2 +- .../license/modal/card/plan-upgrade.tsx | 2 +- .../license/modal/card/talk-to-sales.tsx | 2 +- .../analytics-sidebar/issue-progress.tsx | 2 +- .../analytics-sidebar/progress-stats.tsx | 2 +- .../modules/analytics-sidebar/root.tsx | 2 +- .../modules/applied-filters/date.tsx | 2 +- .../modules/applied-filters/members.tsx | 2 +- .../modules/applied-filters/root.tsx | 4 +- .../modules/applied-filters/status.tsx | 2 +- .../modules/archived-modules/header.tsx | 2 +- .../modules/archived-modules/modal.tsx | 4 +- .../modules/archived-modules/root.tsx | 2 +- .../modules/archived-modules/view.tsx | 2 +- .../modules/delete-module-modal.tsx | 2 +- .../modules/dropdowns/filters/lead.tsx | 2 +- .../modules/dropdowns/filters/members.tsx | 2 +- .../modules/dropdowns/filters/root.tsx | 2 +- .../modules/dropdowns/filters/start-date.tsx | 2 +- .../modules/dropdowns/filters/status.tsx | 2 +- .../modules/dropdowns/filters/target-date.tsx | 2 +- .../components/modules/dropdowns/order-by.tsx | 4 +- apps/web/core/components/modules/form.tsx | 4 +- .../components/modules/gantt-chart/blocks.tsx | 4 +- .../gantt-chart/modules-list-layout.tsx | 2 +- .../modules/links/create-update-modal.tsx | 4 +- .../components/modules/links/list-item.tsx | 2 +- .../core/components/modules/links/list.tsx | 2 +- apps/web/core/components/modules/modal.tsx | 2 +- .../components/modules/module-card-item.tsx | 2 +- .../components/modules/module-layout-icon.tsx | 4 +- .../modules/module-list-item-action.tsx | 2 +- .../components/modules/module-list-item.tsx | 2 +- .../modules/module-peek-overview.tsx | 6 +- .../modules/module-status-dropdown.tsx | 2 +- .../components/modules/module-view-header.tsx | 2 +- .../components/modules/modules-list-view.tsx | 2 +- .../core/components/modules/quick-actions.tsx | 23 +- .../core/components/modules/select/status.tsx | 4 +- .../modules/sidebar-select/select-status.tsx | 4 +- .../onboarding/create-or-join-workspaces.tsx | 2 +- .../onboarding/create-workspace.tsx | 2 +- .../web/core/components/onboarding/header.tsx | 2 +- .../components/onboarding/invitations.tsx | 4 +- .../components/onboarding/invite-members.tsx | 6 +- .../components/onboarding/profile-setup.tsx | 2 +- apps/web/core/components/onboarding/root.tsx | 2 +- .../components/onboarding/step-indicator.tsx | 4 +- .../onboarding/steps/common/header.tsx | 14 +- .../onboarding/steps/profile/consent.tsx | 30 +- .../onboarding/steps/profile/root.tsx | 2 +- .../onboarding/steps/profile/set-password.tsx | 8 +- .../components/onboarding/steps/role/root.tsx | 2 +- .../core/components/onboarding/steps/root.tsx | 4 +- .../components/onboarding/steps/team/root.tsx | 4 +- .../onboarding/steps/usecase/root.tsx | 2 +- .../onboarding/steps/workspace/create.tsx | 515 +++++++------ .../steps/workspace/join-invites.tsx | 4 +- .../onboarding/steps/workspace/root.tsx | 2 +- .../onboarding/switch-account-dropdown.tsx | 2 +- .../onboarding/switch-account-modal.tsx | 4 +- .../core/components/onboarding/tour/root.tsx | 2 +- .../components/onboarding/tour/sidebar.tsx | 52 +- .../components/pages/dropdowns/actions.tsx | 19 +- .../components/pages/editor/editor-body.tsx | 2 +- .../pages/editor/header/logo-picker.tsx | 2 +- .../components/pages/editor/header/root.tsx | 2 +- .../components/pages/editor/page-root.tsx | 2 +- .../pages/editor/summary/content-browser.tsx | 4 +- .../editor/summary/heading-components.tsx | 36 +- .../core/components/pages/editor/title.tsx | 2 +- .../pages/editor/toolbar/color-dropdown.tsx | 2 +- .../pages/editor/toolbar/options-dropdown.tsx | 20 +- .../components/pages/editor/toolbar/root.tsx | 2 +- .../pages/editor/toolbar/toolbar.tsx | 6 +- .../core/components/pages/header/actions.tsx | 2 +- .../pages/header/archived-badge.tsx | 2 +- .../pages/header/copy-link-control.tsx | 2 +- .../pages/header/favorite-control.tsx | 2 +- .../components/pages/header/offline-badge.tsx | 2 +- .../web/core/components/pages/header/root.tsx | 2 +- .../pages/list/applied-filters/root.tsx | 4 +- .../pages/list/block-item-action.tsx | 2 +- apps/web/core/components/pages/list/block.tsx | 2 +- .../components/pages/list/filters/root.tsx | 2 +- .../core/components/pages/list/order-by.tsx | 4 +- apps/web/core/components/pages/list/root.tsx | 2 +- .../components/pages/list/search-input.tsx | 4 +- .../components/pages/list/tab-navigation.tsx | 4 +- .../pages/loaders/page-content-loader.tsx | 4 +- .../components/pages/loaders/page-loader.tsx | 4 +- .../pages/modals/create-page-modal.tsx | 4 +- .../pages/modals/delete-page-modal.tsx | 2 +- .../pages/modals/export-page-modal.tsx | 4 +- .../components/pages/modals/page-form.tsx | 4 +- .../components/pages/navigation-pane/root.tsx | 4 +- .../navigation-pane/tab-panels/assets.tsx | 4 +- .../tab-panels/info/actors-info.tsx | 2 +- .../tab-panels/info/document-info.tsx | 4 +- .../navigation-pane/tab-panels/info/root.tsx | 2 +- .../tab-panels/info/version-history.tsx | 6 +- .../navigation-pane/tab-panels/outline.tsx | 4 +- .../pages/navigation-pane/tab-panels/root.tsx | 4 +- .../pages/navigation-pane/tabs-list.tsx | 4 +- .../pages/pages-list-main-content.tsx | 2 +- .../core/components/pages/pages-list-view.tsx | 2 +- .../core/components/pages/version/editor.tsx | 2 +- .../components/pages/version/main-content.tsx | 2 +- .../core/components/pages/version/root.tsx | 2 +- .../components/power-k/global-shortcuts.tsx | 2 +- .../core/components/power-k/menus/builder.tsx | 6 +- .../core/components/power-k/menus/cycles.tsx | 26 +- .../components/power-k/menus/empty-state.tsx | 6 +- .../core/components/power-k/menus/labels.tsx | 34 +- .../core/components/power-k/menus/members.tsx | 2 +- .../core/components/power-k/menus/modules.tsx | 26 +- .../components/power-k/menus/projects.tsx | 32 +- .../components/power-k/menus/settings.tsx | 24 +- .../core/components/power-k/menus/views.tsx | 24 +- .../components/power-k/menus/workspaces.tsx | 26 +- .../power-k/projects-app-provider.tsx | 2 +- .../ui/modal/command-item-shortcut-badge.tsx | 8 +- .../power-k/ui/modal/command-item.tsx | 4 +- .../power-k/ui/modal/commands-list.tsx | 4 +- .../power-k/ui/modal/context-indicator.tsx | 4 +- .../components/power-k/ui/modal/footer.tsx | 2 +- .../components/power-k/ui/modal/header.tsx | 4 +- .../power-k/ui/modal/search-menu.tsx | 4 +- .../power-k/ui/modal/search-results.tsx | 2 +- .../power-k/ui/modal/shortcuts-root.tsx | 4 +- .../components/power-k/ui/modal/wrapper.tsx | 2 +- .../ui/pages/context-based/module/root.tsx | 2 +- .../context-based/module/status-menu.tsx | 2 +- .../power-k/ui/pages/context-based/root.tsx | 4 +- .../context-based/work-item/cycles-menu.tsx | 2 +- .../work-item/estimates-menu.tsx | 2 +- .../context-based/work-item/labels-menu.tsx | 2 +- .../context-based/work-item/modules-menu.tsx | 2 +- .../work-item/priorities-menu.tsx | 2 +- .../ui/pages/context-based/work-item/root.tsx | 2 +- .../context-based/work-item/states-menu.tsx | 2 +- .../components/power-k/ui/pages/default.tsx | 4 +- .../pages/open-entity/project-cycles-menu.tsx | 2 +- .../open-entity/project-modules-menu.tsx | 2 +- .../open-entity/project-settings-menu.tsx | 2 +- .../pages/open-entity/project-views-menu.tsx | 2 +- .../ui/pages/open-entity/projects-menu.tsx | 2 +- .../power-k/ui/pages/open-entity/root.tsx | 4 +- .../open-entity/workspace-settings-menu.tsx | 2 +- .../ui/pages/open-entity/workspaces-menu.tsx | 2 +- .../ui/pages/preferences/languages-menu.tsx | 2 +- .../power-k/ui/pages/preferences/root.tsx | 2 +- .../pages/preferences/start-of-week-menu.tsx | 4 +- .../ui/pages/preferences/themes-menu.tsx | 2 +- .../ui/pages/preferences/timezone-menu.tsx | 2 +- .../core/components/power-k/ui/pages/root.tsx | 2 +- .../ui/pages/work-item-selection-page.tsx | 4 +- .../power-k/ui/renderer/command.tsx | 4 +- .../power-k/ui/renderer/shortcut.tsx | 4 +- apps/web/core/components/preferences/list.tsx | 18 +- .../core/components/preferences/section.tsx | 18 +- .../profile/activity/activity-list.tsx | 2 +- .../profile/activity/download-button.tsx | 4 +- .../activity/profile-activity-list.tsx | 2 +- .../activity/workspace-activity-list.tsx | 4 +- apps/web/core/components/profile/form.tsx | 2 +- .../notification/email-notification-form.tsx | 4 +- .../components/profile/overview/activity.tsx | 2 +- .../overview/priority-distribution.tsx | 4 +- .../profile/overview/state-distribution.tsx | 4 +- .../components/profile/overview/stats.tsx | 4 +- .../components/profile/overview/workload.tsx | 4 +- .../profile/preferences/language-timezone.tsx | 2 +- .../profile/profile-issues-filter.tsx | 2 +- .../components/profile/profile-issues.tsx | 2 +- .../profile-setting-content-header.tsx | 4 +- .../profile-setting-content-wrapper.tsx | 4 +- apps/web/core/components/profile/sidebar.tsx | 2 +- .../profile/start-of-week-preference.tsx | 4 +- apps/web/core/components/profile/time.tsx | 4 +- .../project-states/create-update/create.tsx | 2 +- .../project-states/create-update/form.tsx | 13 +- .../project-states/create-update/update.tsx | 2 +- .../components/project-states/group-item.tsx | 2 +- .../components/project-states/group-list.tsx | 2 +- .../core/components/project-states/loader.tsx | 18 +- .../project-states/options/delete.tsx | 2 +- .../options/mark-as-default.tsx | 2 +- .../core/components/project-states/root.tsx | 2 +- .../project-states/state-delete-modal.tsx | 2 +- .../project-states/state-item-title.tsx | 2 +- .../components/project-states/state-item.tsx | 2 +- .../components/project-states/state-list.tsx | 2 +- .../project/applied-filters/access.tsx | 2 +- .../project/applied-filters/date.tsx | 2 +- .../project/applied-filters/members.tsx | 2 +- .../project-display-filters.tsx | 2 +- .../project/applied-filters/root.tsx | 4 +- .../web/core/components/project/card-list.tsx | 2 +- apps/web/core/components/project/card.tsx | 2 +- .../project/confirm-project-member-remove.tsx | 2 +- .../project/create-project-modal.tsx | 4 +- .../project/create/common-attributes.tsx | 5 +- .../core/components/project/create/header.tsx | 5 +- .../project/create/project-create-buttons.tsx | 4 +- .../project/delete-project-modal.tsx | 4 +- .../project/dropdowns/filters/access.tsx | 2 +- .../project/dropdowns/filters/created-at.tsx | 2 +- .../project/dropdowns/filters/lead.tsx | 2 +- .../project/dropdowns/filters/member-list.tsx | 12 +- .../project/dropdowns/filters/members.tsx | 2 +- .../project/dropdowns/filters/root.tsx | 2 +- .../components/project/dropdowns/order-by.tsx | 4 +- .../core/components/project/empty-state.tsx | 55 +- apps/web/core/components/project/filters.tsx | 7 +- .../core/components/project/form-loader.tsx | 96 +-- apps/web/core/components/project/form.tsx | 4 +- apps/web/core/components/project/header.tsx | 2 +- .../components/project/integration-card.tsx | 4 +- .../components/project/join-project-modal.tsx | 4 +- .../project/leave-project-modal.tsx | 2 +- .../project/member-header-column.tsx | 2 +- .../components/project/member-list-item.tsx | 2 +- .../core/components/project/member-list.tsx | 2 +- .../core/components/project/member-select.tsx | 2 +- .../components/project/multi-select-modal.tsx | 2 +- .../project/project-feature-update.tsx | 2 +- .../project/project-network-icon.tsx | 4 +- .../project-settings-member-defaults.tsx | 23 +- .../project/publish-project/modal.tsx | 2 +- apps/web/core/components/project/root.tsx | 2 +- .../components/project/search-projects.tsx | 2 +- .../project/send-project-invitation-modal.tsx | 2 +- .../archive-project/archive-restore-modal.tsx | 4 +- .../settings/archive-project/selection.tsx | 4 +- .../settings/delete-project-section.tsx | 4 +- .../project/settings/features-list.tsx | 2 +- .../components/project/settings/helper.tsx | 4 +- .../project/settings/member-columns.tsx | 6 +- apps/web/core/components/readonly/cycle.tsx | 2 +- apps/web/core/components/readonly/date.tsx | 2 +- .../web/core/components/readonly/estimate.tsx | 2 +- apps/web/core/components/readonly/labels.tsx | 2 +- apps/web/core/components/readonly/member.tsx | 2 +- apps/web/core/components/readonly/module.tsx | 2 +- .../web/core/components/readonly/priority.tsx | 2 +- apps/web/core/components/readonly/state.tsx | 2 +- .../rich-filters/add-filters/button.tsx | 86 +-- .../rich-filters/add-filters/dropdown.tsx | 129 ++-- .../rich-filters/filter-item/close-button.tsx | 37 +- .../rich-filters/filter-item/container.tsx | 4 +- .../rich-filters/filter-item/invalid.tsx | 49 +- .../rich-filters/filter-item/loader.tsx | 12 +- .../rich-filters/filter-item/property.tsx | 43 +- .../rich-filters/filter-item/root.tsx | 178 ++--- .../filter-value-input/date/range.tsx | 80 +- .../filter-value-input/date/single.tsx | 60 +- .../rich-filters/filter-value-input/root.tsx | 106 +-- .../filter-value-input/select/multi.tsx | 56 +- .../select/selected-options-display.tsx | 4 +- .../filter-value-input/select/single.tsx | 68 +- .../components/rich-filters/filters-row.tsx | 318 ++++---- .../rich-filters/filters-toggle.tsx | 108 +-- .../components/settings/content-wrapper.tsx | 2 +- apps/web/core/components/settings/header.tsx | 2 +- apps/web/core/components/settings/heading.tsx | 42 +- apps/web/core/components/settings/layout.tsx | 6 +- .../core/components/settings/mobile/nav.tsx | 2 +- .../project/sidebar/nav-item-children.tsx | 2 +- .../settings/project/sidebar/root.tsx | 2 +- .../components/settings/sidebar/header.tsx | 4 +- .../components/settings/sidebar/nav-item.tsx | 2 +- .../core/components/settings/sidebar/root.tsx | 2 +- apps/web/core/components/settings/tabs.tsx | 2 +- .../core/components/sidebar/add-button.tsx | 4 +- .../core/components/sidebar/search-button.tsx | 4 +- .../core/components/sidebar/sidebar-item.tsx | 33 +- .../components/sidebar/sidebar-navigation.tsx | 4 +- .../sidebar/sidebar-toggle-button.tsx | 2 +- .../components/sidebar/sidebar-wrapper.tsx | 2 +- .../core/components/stickies/action-bar.tsx | 2 +- .../core/components/stickies/delete-modal.tsx | 2 +- .../stickies/layout/stickies-infinite.tsx | 2 +- .../stickies/layout/stickies-list.tsx | 6 +- .../stickies/layout/stickies-loader.tsx | 78 +- .../stickies/layout/stickies-truncated.tsx | 2 +- .../stickies/layout/sticky-dnd-wrapper.tsx | 2 +- .../core/components/stickies/modal/index.tsx | 4 +- .../core/components/stickies/modal/search.tsx | 2 +- .../components/stickies/modal/stickies.tsx | 2 +- .../components/stickies/sticky/inputs.tsx | 4 +- .../core/components/stickies/sticky/root.tsx | 2 +- .../sticky/sticky-item-drag-handle.tsx | 2 +- apps/web/core/components/stickies/widget.tsx | 2 +- apps/web/core/components/ui/empty-space.tsx | 58 +- .../integration-and-import-export-banner.tsx | 24 +- apps/web/core/components/ui/labels-list.tsx | 4 +- .../ui/loader/cycle-module-board-loader.tsx | 64 +- .../ui/loader/cycle-module-list-loader.tsx | 54 +- .../loader/layouts/calendar-layout-loader.tsx | 40 +- .../ui/loader/layouts/gantt-layout-loader.tsx | 98 +-- .../loader/layouts/kanban-layout-loader.tsx | 59 +- .../ui/loader/layouts/list-layout-loader.tsx | 148 ++-- .../loader/layouts/members-layout-loader.tsx | 28 +- .../project-inbox/inbox-layout-loader.tsx | 36 +- .../project-inbox/inbox-sidebar-loader.tsx | 36 +- .../layouts/spreadsheet-layout-loader.tsx | 82 ++- .../ui/loader/notification-loader.tsx | 30 +- .../components/ui/loader/pages-loader.tsx | 54 +- .../components/ui/loader/projects-loader.tsx | 62 +- .../ui/loader/settings/activity.tsx | 22 +- .../ui/loader/settings/api-token.tsx | 4 +- .../components/ui/loader/settings/email.tsx | 48 +- .../ui/loader/settings/import-and-export.tsx | 34 +- .../ui/loader/settings/integration.tsx | 36 +- .../components/ui/loader/settings/members.tsx | 28 +- .../ui/loader/settings/web-hook.tsx | 34 +- .../components/ui/loader/view-list-loader.tsx | 34 +- .../components/ui/markdown-to-component.tsx | 44 +- .../components/ui/profile-empty-state.tsx | 20 +- .../core/components/user/user-greetings.tsx | 4 +- .../views/applied-filters/access.tsx | 2 +- .../components/views/applied-filters/root.tsx | 4 +- .../components/views/delete-view-modal.tsx | 2 +- .../views/filters/filter-selection.tsx | 2 +- .../components/views/filters/order-by.tsx | 4 +- apps/web/core/components/views/form.tsx | 2 +- apps/web/core/components/views/helper.tsx | 4 +- apps/web/core/components/views/modal.tsx | 2 +- .../core/components/views/quick-actions.tsx | 19 +- .../components/views/view-list-header.tsx | 2 +- .../views/view-list-item-action.tsx | 2 +- .../core/components/views/view-list-item.tsx | 2 +- apps/web/core/components/views/views-list.tsx | 2 +- .../web-hooks/create-webhook-modal.tsx | 4 +- .../web-hooks/delete-webhook-modal.tsx | 4 +- .../core/components/web-hooks/empty-state.tsx | 4 +- .../web-hooks/form/delete-section.tsx | 4 +- .../components/web-hooks/form/event-types.tsx | 4 +- .../core/components/web-hooks/form/form.tsx | 2 +- .../form/individual-event-options.tsx | 56 +- .../core/components/web-hooks/form/input.tsx | 4 +- .../components/web-hooks/form/secret-key.tsx | 2 +- .../core/components/web-hooks/form/toggle.tsx | 44 +- .../web-hooks/generated-hook-details.tsx | 4 +- .../web-hooks/webhooks-list-item.tsx | 4 +- .../components/web-hooks/webhooks-list.tsx | 2 +- .../work-item-filters/filters-hoc/base.tsx | 4 +- .../filters-hoc/project-level.tsx | 4 +- .../filters-hoc/workspace-level.tsx | 4 +- .../work-item-filters/filters-row.tsx | 4 +- .../work-item-filters/filters-toggle.tsx | 2 +- .../notification-app-sidebar-option.tsx | 4 +- .../workspace-notifications/root.tsx | 2 +- .../sidebar/empty-state.tsx | 4 +- .../sidebar/filters/applied-filter.tsx | 2 +- .../sidebar/filters/menu/menu-option-item.tsx | 5 +- .../sidebar/filters/menu/root.tsx | 2 +- .../header/options/menu-option/menu-item.tsx | 2 +- .../header/options/menu-option/root.tsx | 2 +- .../sidebar/header/options/root.tsx | 4 +- .../sidebar/header/root.tsx | 4 +- .../sidebar/loader.tsx | 30 +- .../sidebar/notification-card/content.tsx | 12 +- .../sidebar/notification-card/item.tsx | 2 +- .../notification-card/options/archive.tsx | 4 +- .../notification-card/options/button.tsx | 4 +- .../notification-card/options/read.tsx | 4 +- .../notification-card/options/root.tsx | 2 +- .../options/snooze/modal.tsx | 4 +- .../notification-card/options/snooze/root.tsx | 4 +- .../workspace-notifications/sidebar/root.tsx | 2 +- .../ConfirmWorkspaceMemberRemove.tsx | 2 +- .../workspace/billing/comparison/base.tsx | 2 +- .../billing/comparison/feature-detail.tsx | 4 +- .../confirm-workspace-member-remove.tsx | 2 +- .../workspace/create-workspace-form.tsx | 3 +- .../workspace/delete-workspace-form.tsx | 2 +- .../workspace/invite-modal/actions.tsx | 2 +- .../workspace/invite-modal/fields.tsx | 2 +- .../workspace/invite-modal/form.tsx | 2 +- apps/web/core/components/workspace/logo.tsx | 2 +- .../settings/invitations-list-item.tsx | 2 +- .../workspace/settings/member-columns.tsx | 6 +- .../workspace/settings/members-list-item.tsx | 2 +- .../workspace/settings/members-list.tsx | 5 +- .../workspace/settings/workspace-details.tsx | 2 +- .../workspace/sidebar/dropdown-item.tsx | 2 +- .../components/workspace/sidebar/dropdown.tsx | 2 +- .../sidebar/favorites/favorite-folder.tsx | 4 +- .../common/favorite-item-drag-handle.tsx | 2 +- .../common/favorite-item-quick-action.tsx | 2 +- .../common/favorite-item-title.tsx | 2 +- .../common/favorite-item-wrapper.tsx | 4 +- .../sidebar/favorites/favorite-items/root.tsx | 2 +- .../sidebar/favorites/favorites-menu.tsx | 2 +- .../sidebar/favorites/new-fav-folder.tsx | 2 +- .../workspace/sidebar/help-menu.tsx | 2 +- .../workspace/sidebar/help-section.tsx | 2 +- .../workspace/sidebar/help-section/root.tsx | 2 +- .../workspace/sidebar/project-navigation.tsx | 2 +- .../workspace/sidebar/projects-list-item.tsx | 2 +- .../workspace/sidebar/projects-list.tsx | 2 +- .../workspace/sidebar/quick-actions.tsx | 2 +- .../workspace/sidebar/sidebar-item.tsx | 6 +- .../workspace/sidebar/sidebar-menu-items.tsx | 2 +- .../workspace/sidebar/user-menu-item.tsx | 2 +- .../workspace/sidebar/user-menu-root.tsx | 2 +- .../workspace/sidebar/user-menu.tsx | 2 +- .../sidebar/workspace-menu-header.tsx | 4 +- .../workspace/sidebar/workspace-menu-item.tsx | 4 +- .../workspace/sidebar/workspace-menu-root.tsx | 2 +- .../workspace/sidebar/workspace-menu.tsx | 2 +- .../views/default-view-list-item.tsx | 2 +- .../views/default-view-quick-action.tsx | 2 +- .../workspace/views/delete-view-modal.tsx | 2 +- .../core/components/workspace/views/form.tsx | 2 +- .../components/workspace/views/header.tsx | 10 +- .../core/components/workspace/views/modal.tsx | 2 +- .../workspace/views/quick-action.tsx | 2 +- .../workspace/views/view-list-item.tsx | 2 +- .../components/workspace/views/views-list.tsx | 2 +- apps/web/core/constants/plans.tsx | 28 +- .../core/hooks/context/app-rail-context.tsx | 2 +- .../core/hooks/use-realtime-page-events.tsx | 22 +- .../layouts/auth-layout/project-wrapper.tsx | 2 +- .../layouts/auth-layout/workspace-wrapper.tsx | 2 +- .../web/core/layouts/default-layout/index.tsx | 12 +- apps/web/core/lib/intercom-provider.tsx | 2 +- apps/web/core/lib/posthog-provider.tsx | 6 +- apps/web/core/lib/store-context.tsx | 6 +- .../lib/wrappers/authentication-wrapper.tsx | 2 +- .../core/lib/wrappers/instance-wrapper.tsx | 2 +- apps/web/core/lib/wrappers/store-wrapper.tsx | 2 +- apps/web/ee/components/home/header.tsx | 4 +- packages/codemods/.prettierrc | 5 + packages/codemods/function-declaration.ts | 483 ++++++++++++ packages/codemods/instructions.md | 366 ++++++++++ packages/codemods/package.json | 15 + .../tests/function-declaration.spec.ts | 465 ++++++++++++ packages/codemods/tsconfig.json | 13 + packages/codemods/vitest.config.ts | 7 + .../src/ce/components/link-container.tsx | 14 +- .../src/ce/extensions/document-extensions.tsx | 4 +- .../ce/extensions/rich-text-extensions.tsx | 4 +- .../editors/document/collaborative-editor.tsx | 15 +- .../components/editors/document/editor.tsx | 13 +- .../components/editors/document/loader.tsx | 4 +- .../editors/document/page-renderer.tsx | 4 +- .../components/editors/editor-container.tsx | 4 +- .../components/editors/editor-content.tsx | 4 +- .../components/editors/editor-wrapper.tsx | 4 +- .../editors/link-view-container.tsx | 4 +- .../components/editors/lite-text/editor.tsx | 13 +- .../components/editors/rich-text/editor.tsx | 13 +- .../core/components/links/link-edit-view.tsx | 32 +- .../core/components/links/link-preview.tsx | 6 +- .../src/core/components/links/link-view.tsx | 4 +- .../src/core/components/menus/ai-menu.tsx | 4 +- .../src/core/components/menus/block-menu.tsx | 4 +- .../menus/bubble-menu/alignment-selector.tsx | 4 +- .../menus/bubble-menu/color-selector.tsx | 4 +- .../menus/bubble-menu/link-selector.tsx | 4 +- .../menus/bubble-menu/node-selector.tsx | 4 +- .../components/menus/bubble-menu/root.tsx | 4 +- .../components/menus/floating-menu/root.tsx | 4 +- .../src/core/extensions/callout/block.tsx | 4 +- .../extensions/callout/color-selector.tsx | 4 +- .../core/extensions/callout/logo-selector.tsx | 4 +- .../extensions/code/code-block-node-view.tsx | 4 +- .../custom-image/components/block.tsx | 4 +- .../custom-image/components/node-view.tsx | 4 +- .../components/toolbar/alignment.tsx | 4 +- .../components/toolbar/download.tsx | 4 +- .../components/toolbar/full-screen/modal.tsx | 8 +- .../components/toolbar/full-screen/root.tsx | 4 +- .../custom-image/components/toolbar/root.tsx | 4 +- .../custom-image/components/upload-status.tsx | 4 +- .../custom-image/components/uploader.tsx | 4 +- .../extensions/custom-image/extension.tsx | 4 +- .../emoji/components/emojis-list.tsx | 5 +- .../src/core/extensions/image/extension.tsx | 4 +- .../core/extensions/mentions/extension.tsx | 4 +- .../extensions/mentions/mention-node-view.tsx | 4 +- .../mentions/mentions-list-dropdown.tsx | 2 +- .../slash-commands/command-items-list.tsx | 4 + .../slash-commands/command-menu-item.tsx | 4 +- .../slash-commands/command-menu.tsx | 2 +- .../core/extensions/slash-commands/root.tsx | 5 +- .../plugins/drag-handles/color-selector.tsx | 4 +- .../drag-handles/column/drag-handle.tsx | 4 +- .../plugins/drag-handles/column/dropdown.tsx | 4 +- .../plugins/drag-handles/row/drag-handle.tsx | 4 +- .../plugins/drag-handles/row/dropdown.tsx | 4 +- .../extensions/work-item-embed/extension.tsx | 5 +- packages/i18n/src/context/index.tsx | 2 +- packages/propel/src/accordion/accordion.tsx | 81 +-- .../src/animated-counter/animated-counter.tsx | 4 +- packages/propel/src/avatar/avatar.tsx | 4 +- packages/propel/src/banner/banner.stories.tsx | 178 ++--- packages/propel/src/banner/banner.tsx | 174 +++-- packages/propel/src/button/button.tsx | 2 +- packages/propel/src/calendar/root.tsx | 4 +- packages/propel/src/card/card.tsx | 2 +- .../propel/src/charts/area-chart/root.tsx | 4 +- packages/propel/src/charts/bar-chart/bar.tsx | 18 +- packages/propel/src/charts/bar-chart/root.tsx | 2 +- .../propel/src/charts/components/legend.tsx | 10 +- .../propel/src/charts/components/tick.tsx | 42 +- .../propel/src/charts/components/tooltip.tsx | 2 +- .../propel/src/charts/line-chart/root.tsx | 4 +- .../src/charts/pie-chart/active-shape.tsx | 2 +- packages/propel/src/charts/pie-chart/root.tsx | 2 +- .../propel/src/charts/pie-chart/tooltip.tsx | 2 +- .../propel/src/charts/radar-chart/root.tsx | 4 +- .../propel/src/charts/scatter-chart/root.tsx | 4 +- .../src/charts/tree-map/map-content.tsx | 6 +- packages/propel/src/charts/tree-map/root.tsx | 2 +- .../propel/src/charts/tree-map/tooltip.tsx | 2 +- .../propel/src/collapsible/collapsible.tsx | 30 +- packages/propel/src/combobox/combobox.tsx | 11 +- .../propel/src/context-menu/context-menu.tsx | 134 ++-- packages/propel/src/dialog/root.tsx | 99 +-- .../src/emoji-icon-picker/emoji-picker.tsx | 4 +- .../src/emoji-icon-picker/emoji/emoji.tsx | 4 +- .../src/emoji-icon-picker/icon/icon-root.tsx | 4 +- .../emoji-icon-picker/icon/lucide-root.tsx | 4 +- .../emoji-icon-picker/icon/material-root.tsx | 4 +- .../propel/src/emoji-icon-picker/logo.tsx | 4 +- .../emoji-reaction/emoji-reaction-picker.tsx | 4 +- .../src/emoji-reaction/emoji-reaction.tsx | 123 ++-- .../assets/horizontal-stack/customer.tsx | 101 +-- .../assets/horizontal-stack/epic.tsx | 97 +-- .../assets/horizontal-stack/estimate.tsx | 101 +-- .../assets/horizontal-stack/export.tsx | 109 +-- .../assets/horizontal-stack/intake.tsx | 133 ++-- .../assets/horizontal-stack/label.tsx | 105 +-- .../assets/horizontal-stack/link.tsx | 121 +-- .../assets/horizontal-stack/members.tsx | 133 ++-- .../assets/horizontal-stack/note.tsx | 97 +-- .../assets/horizontal-stack/priority.tsx | 117 +-- .../assets/horizontal-stack/project.tsx | 104 +-- .../assets/horizontal-stack/settings.tsx | 101 +-- .../assets/horizontal-stack/state.tsx | 97 +-- .../assets/horizontal-stack/template.tsx | 121 +-- .../assets/horizontal-stack/token.tsx | 109 +-- .../assets/horizontal-stack/unknown.tsx | 116 +-- .../assets/horizontal-stack/update.tsx | 105 +-- .../assets/horizontal-stack/webhook.tsx | 97 +-- .../assets/horizontal-stack/work-item.tsx | 121 +-- .../assets/horizontal-stack/worklog.tsx | 109 +-- .../empty-state/assets/illustration/inbox.tsx | 266 +++---- .../assets/illustration/search.tsx | 114 +-- .../assets/vertical-stack/404-error.tsx | 512 ++++++------- .../assets/vertical-stack/archived-cycle.tsx | 624 ++++++++-------- .../assets/vertical-stack/archived-module.tsx | 528 +++++++------- .../vertical-stack/archived-work-item.tsx | 588 +++++++-------- .../assets/vertical-stack/customer.tsx | 688 +++++++++--------- .../assets/vertical-stack/cycle.tsx | 429 +++++------ .../assets/vertical-stack/dashboard.tsx | 576 +++++++-------- .../assets/vertical-stack/draft.tsx | 472 ++++++------ .../assets/vertical-stack/epic.tsx | 388 +++++----- .../assets/vertical-stack/initiative.tsx | 436 +++++------ .../assets/vertical-stack/invalid-link.tsx | 298 ++++---- .../assets/vertical-stack/module.tsx | 688 +++++++++--------- .../assets/vertical-stack/no-access.tsx | 270 +++---- .../assets/vertical-stack/page.tsx | 454 ++++++------ .../assets/vertical-stack/project.tsx | 434 +++++------ .../assets/vertical-stack/server-error.tsx | 610 ++++++++-------- .../assets/vertical-stack/teamspace.tsx | 644 ++++++++-------- .../assets/vertical-stack/view.tsx | 576 +++++++-------- .../assets/vertical-stack/work-item.tsx | 432 +++++------ .../src/empty-state/compact-empty-state.tsx | 6 +- .../src/empty-state/detailed-empty-state.tsx | 6 +- .../propel/src/empty-state/empty-state.tsx | 6 +- .../propel/src/icons/actions/add-icon.tsx | 4 +- .../src/icons/actions/add-reaction-icon.tsx | 4 +- .../propel/src/icons/actions/close-icon.tsx | 18 +- packages/propel/src/icons/activity-icon.tsx | 54 +- packages/propel/src/icons/ai-icon.tsx | 54 +- .../propel/src/icons/arrows/chevron-down.tsx | 18 +- .../propel/src/icons/arrows/chevron-left.tsx | 18 +- .../propel/src/icons/arrows/chevron-right.tsx | 18 +- .../propel/src/icons/arrows/chevron-up.tsx | 18 +- packages/propel/src/icons/at-risk-icon.tsx | 36 +- .../src/icons/attachments/audio-file-icon.tsx | 18 +- .../src/icons/attachments/code-file-icon.tsx | 18 +- .../icons/attachments/document-file-icon.tsx | 18 +- .../src/icons/attachments/image-file-icon.tsx | 18 +- .../src/icons/attachments/video-file-icon.tsx | 18 +- packages/propel/src/icons/bar-icon.tsx | 34 +- packages/propel/src/icons/blocked-icon.tsx | 46 +- packages/propel/src/icons/blocker-icon.tsx | 46 +- .../propel/src/icons/brand/accenture-logo.tsx | 43 +- .../propel/src/icons/brand/dolby-logo.tsx | 72 +- .../propel/src/icons/brand/plane-lockup.tsx | 85 ++- .../propel/src/icons/brand/plane-logo.tsx | 30 +- .../propel/src/icons/brand/plane-wordmark.tsx | 61 +- packages/propel/src/icons/brand/sony-logo.tsx | 30 +- .../propel/src/icons/brand/zerodha-logo.tsx | 47 +- .../propel/src/icons/calendar-after-icon.tsx | 32 +- .../propel/src/icons/calendar-before-icon.tsx | 46 +- .../propel/src/icons/center-panel-icon.tsx | 52 +- .../propel/src/icons/comment-fill-icon.tsx | 22 +- packages/propel/src/icons/create-icon.tsx | 38 +- .../src/icons/cycle/circle-dot-full-icon.tsx | 20 +- .../propel/src/icons/cycle/contrast-icon.tsx | 46 +- .../src/icons/cycle/cycle-group-icon.tsx | 6 +- .../src/icons/cycle/double-circle-icon.tsx | 28 +- packages/propel/src/icons/default-icon.tsx | 12 +- packages/propel/src/icons/dice-icon.tsx | 82 ++- packages/propel/src/icons/discord-icon.tsx | 56 +- .../propel/src/icons/display-properties.tsx | 22 +- packages/propel/src/icons/done-icon.tsx | 38 +- packages/propel/src/icons/dropdown-icon.tsx | 24 +- .../propel/src/icons/favorite-folder-icon.tsx | 52 +- .../src/icons/full-screen-panel-icon.tsx | 46 +- packages/propel/src/icons/github-icon.tsx | 50 +- packages/propel/src/icons/gitlab-icon.tsx | 50 +- packages/propel/src/icons/icon-wrapper.tsx | 52 +- packages/propel/src/icons/icon.tsx | 4 +- .../propel/src/icons/in-progress-icon.tsx | 28 +- packages/propel/src/icons/info-fill-icon.tsx | 22 +- packages/propel/src/icons/info-icon.tsx | 36 +- packages/propel/src/icons/intake.tsx | 38 +- packages/propel/src/icons/layer-stack.tsx | 54 +- packages/propel/src/icons/layers-icon.tsx | 68 +- .../propel/src/icons/layouts/board-icon.tsx | 18 +- .../src/icons/layouts/calendar-icon.tsx | 18 +- .../propel/src/icons/layouts/card-icon.tsx | 18 +- .../propel/src/icons/layouts/grid-icon.tsx | 18 +- .../propel/src/icons/layouts/list-icon.tsx | 18 +- .../propel/src/icons/layouts/sheet-icon.tsx | 18 +- .../src/icons/layouts/timeline-icon.tsx | 18 +- packages/propel/src/icons/lead-icon.tsx | 42 +- packages/propel/src/icons/module/backlog.tsx | 65 +- .../propel/src/icons/module/cancelled.tsx | 46 +- .../propel/src/icons/module/completed.tsx | 32 +- .../propel/src/icons/module/in-progress.tsx | 73 +- .../src/icons/module/module-status-icon.tsx | 4 +- packages/propel/src/icons/module/paused.tsx | 46 +- packages/propel/src/icons/module/planned.tsx | 32 +- packages/propel/src/icons/monospace-icon.tsx | 26 +- packages/propel/src/icons/multiple-sticky.tsx | 50 +- packages/propel/src/icons/off-track-icon.tsx | 36 +- packages/propel/src/icons/on-track-icon.tsx | 74 +- packages/propel/src/icons/overview-icon.tsx | 22 +- packages/propel/src/icons/pending-icon.tsx | 48 +- .../propel/src/icons/photo-filter-icon.tsx | 58 +- packages/propel/src/icons/planned-icon.tsx | 74 +- packages/propel/src/icons/priority-icon.tsx | 4 +- .../propel/src/icons/project/cycle-icon.tsx | 4 +- .../propel/src/icons/project/epic-icon.tsx | 18 +- .../propel/src/icons/project/intake-icon.tsx | 4 +- .../propel/src/icons/project/module-icon.tsx | 50 +- .../propel/src/icons/project/page-icon.tsx | 18 +- .../propel/src/icons/project/view-icon.tsx | 4 +- .../src/icons/project/work-items-icon.tsx | 18 +- .../src/icons/properties/boolean-icon.tsx | 18 +- .../src/icons/properties/dropdown-icon.tsx | 4 +- .../src/icons/properties/due-date-icon.tsx | 18 +- .../src/icons/properties/duplicate-icon.tsx | 4 +- .../src/icons/properties/estimate-icon.tsx | 18 +- .../propel/src/icons/properties/hash-icon.tsx | 18 +- .../src/icons/properties/label-icon.tsx | 4 +- .../src/icons/properties/members-icon.tsx | 18 +- .../icons/properties/overdue-date-icon.tsx | 18 +- .../src/icons/properties/parent-icon.tsx | 34 +- .../src/icons/properties/priority-icon.tsx | 18 +- .../src/icons/properties/relates-to-icon.tsx | 18 +- .../src/icons/properties/relation-icon.tsx | 18 +- .../src/icons/properties/scope-icon.tsx | 4 +- .../src/icons/properties/start-date-icon.tsx | 18 +- .../src/icons/properties/state-icon.tsx | 4 +- .../src/icons/properties/user-circle-icon.tsx | 4 +- .../propel/src/icons/properties/user-icon.tsx | 18 +- .../src/icons/properties/user-square-icon.tsx | 4 +- .../src/icons/properties/workflows-icon.tsx | 34 +- packages/propel/src/icons/related-icon.tsx | 46 +- packages/propel/src/icons/sans-serif-icon.tsx | 26 +- packages/propel/src/icons/serif-icon.tsx | 26 +- packages/propel/src/icons/side-panel-icon.tsx | 46 +- .../src/icons/state/backlog-group-icon.tsx | 9 +- .../src/icons/state/cancelled-group-icon.tsx | 38 +- .../src/icons/state/completed-group-icon.tsx | 38 +- .../propel/src/icons/state/dashed-circle.tsx | 4 +- .../src/icons/state/progress-circle.tsx | 37 +- .../src/icons/state/started-group-icon.tsx | 6 +- .../src/icons/state/state-group-icon.tsx | 6 +- .../src/icons/state/unstarted-group-icon.tsx | 6 +- .../propel/src/icons/sticky-note-icon.tsx | 66 +- .../propel/src/icons/sub-brand/pi-chat.tsx | 22 +- .../propel/src/icons/sub-brand/plane-icon.tsx | 4 +- .../propel/src/icons/sub-brand/wiki-icon.tsx | 4 +- packages/propel/src/icons/suspended-user.tsx | 54 +- packages/propel/src/icons/teams.tsx | 32 +- packages/propel/src/icons/transfer-icon.tsx | 12 +- packages/propel/src/icons/tree-map-icon.tsx | 26 +- packages/propel/src/icons/updates-icon.tsx | 37 +- .../propel/src/icons/user-activity-icon.tsx | 36 +- packages/propel/src/icons/workspace-icon.tsx | 36 +- .../src/icons/workspace/analytics-icon.tsx | 18 +- .../src/icons/workspace/archive-icon.tsx | 18 +- .../src/icons/workspace/dashboard-icon.tsx | 18 +- .../propel/src/icons/workspace/draft-icon.tsx | 18 +- .../propel/src/icons/workspace/home-icon.tsx | 18 +- .../propel/src/icons/workspace/inbox-icon.tsx | 18 +- .../src/icons/workspace/project-icon.tsx | 18 +- .../src/icons/workspace/your-work-icon.tsx | 26 +- packages/propel/src/input/input.tsx | 2 +- packages/propel/src/menu/menu.tsx | 8 +- packages/propel/src/pill/pill.tsx | 11 +- packages/propel/src/popover/root.tsx | 14 +- packages/propel/src/portal/modal-portal.tsx | 6 +- packages/propel/src/portal/portal-wrapper.tsx | 6 +- packages/propel/src/portal/portal.stories.tsx | 56 +- packages/propel/src/separator/separator.tsx | 11 +- packages/propel/src/skeleton/root.tsx | 28 +- .../src/spinners/circular-bar-spinner.tsx | 52 +- .../propel/src/spinners/circular-spinner.tsx | 48 +- packages/propel/src/switch/root.tsx | 76 +- packages/propel/src/table/core.tsx | 86 ++- packages/propel/src/tabs/tabs.tsx | 144 ++-- packages/propel/src/toast/toast.tsx | 29 +- packages/propel/src/toolbar/toolbar.tsx | 135 ++-- .../auth-form/auth-confirm-password-input.tsx | 6 +- .../ui/src/auth-form/auth-forgot-password.tsx | 6 +- packages/ui/src/auth-form/auth-form.tsx | 6 +- packages/ui/src/auth-form/auth-input.tsx | 6 +- .../ui/src/auth-form/auth-password-input.tsx | 6 +- packages/ui/src/avatar/avatar-group.tsx | 4 +- packages/ui/src/avatar/avatar.tsx | 4 +- packages/ui/src/badge/badge.tsx | 2 +- .../src/breadcrumbs/breadcrumbs.stories.tsx | 4 +- packages/ui/src/breadcrumbs/breadcrumbs.tsx | 40 +- .../src/breadcrumbs/navigation-dropdown.tsx | 56 +- .../navigation-search-dropdown.tsx | 4 +- packages/ui/src/button/button.tsx | 2 +- packages/ui/src/button/toggle-switch.tsx | 4 +- packages/ui/src/card/card.tsx | 2 +- .../ui/src/collapsible/collapsible-button.tsx | 4 +- packages/ui/src/collapsible/collapsible.tsx | 4 +- packages/ui/src/color-picker/color-picker.tsx | 4 +- .../src/content-wrapper/content-wrapper.tsx | 5 +- packages/ui/src/control-link/control-link.tsx | 5 +- packages/ui/src/drag-handle.tsx | 5 +- packages/ui/src/drop-indicator.tsx | 4 +- packages/ui/src/dropdown/common/button.tsx | 4 +- .../ui/src/dropdown/common/input-search.tsx | 4 +- packages/ui/src/dropdown/common/loader.tsx | 16 +- packages/ui/src/dropdown/common/options.tsx | 4 +- packages/ui/src/dropdown/multi-select.tsx | 4 +- packages/ui/src/dropdown/single-select.tsx | 4 +- packages/ui/src/dropdowns/combo-box.tsx | 2 +- .../ui/src/dropdowns/context-menu/item.tsx | 4 +- .../ui/src/dropdowns/context-menu/root.tsx | 12 +- packages/ui/src/dropdowns/custom-menu.tsx | 24 +- .../ui/src/dropdowns/custom-search-select.tsx | 4 +- packages/ui/src/dropdowns/custom-select.tsx | 8 +- packages/ui/src/favorite-star.tsx | 4 +- packages/ui/src/form-fields/checkbox.tsx | 2 +- .../ui/src/form-fields/input-color-picker.tsx | 4 +- packages/ui/src/form-fields/input.tsx | 2 +- .../ui/src/form-fields/password/indicator.tsx | 6 +- .../form-fields/password/password-input.tsx | 6 +- packages/ui/src/form-fields/root.tsx | 62 +- packages/ui/src/form-fields/textarea.tsx | 5 +- packages/ui/src/header/header.tsx | 32 +- packages/ui/src/link/block.tsx | 4 +- packages/ui/src/loader.tsx | 20 +- packages/ui/src/modals/alert-modal.tsx | 4 +- packages/ui/src/modals/modal-core.tsx | 4 +- packages/ui/src/oauth/oauth-button.tsx | 5 +- packages/ui/src/oauth/oauth-options.tsx | 4 +- packages/ui/src/popovers/popover-menu.tsx | 4 +- packages/ui/src/popovers/popover.tsx | 4 +- .../progress/circular-progress-indicator.tsx | 4 +- .../progress/linear-progress-indicator.tsx | 6 +- packages/ui/src/progress/progress-bar.tsx | 6 +- packages/ui/src/progress/radial-progress.tsx | 4 +- packages/ui/src/row/row.tsx | 2 +- packages/ui/src/scroll-area.tsx | 4 +- packages/ui/src/sortable/draggable.tsx | 5 +- packages/ui/src/sortable/sortable.tsx | 4 +- .../ui/src/spinners/circular-bar-spinner.tsx | 52 +- packages/ui/src/spinners/circular-spinner.tsx | 48 +- packages/ui/src/tables/table.tsx | 4 +- packages/ui/src/tabs/tab-list.tsx | 84 +-- packages/ui/src/tabs/tabs.tsx | 4 +- packages/ui/src/tag/tag.tsx | 2 +- packages/ui/src/tooltip/tooltip.tsx | 10 +- packages/ui/src/typography/sub-heading.tsx | 13 +- pnpm-lock.yaml | 517 ++++++++++++- 1771 files changed, 17003 insertions(+), 13856 deletions(-) create mode 100644 .github/instructions/bash.instructions.md create mode 100644 .github/instructions/typescript.instructions.md create mode 100644 packages/codemods/.prettierrc create mode 100644 packages/codemods/function-declaration.ts create mode 100644 packages/codemods/instructions.md create mode 100644 packages/codemods/package.json create mode 100644 packages/codemods/tests/function-declaration.spec.ts create mode 100644 packages/codemods/tsconfig.json create mode 100644 packages/codemods/vitest.config.ts diff --git a/.github/instructions/bash.instructions.md b/.github/instructions/bash.instructions.md new file mode 100644 index 000000000..b14d3c9ed --- /dev/null +++ b/.github/instructions/bash.instructions.md @@ -0,0 +1,48 @@ +--- +description: Guidelines for bash commands and tooling in the monorepo +applyTo: "**/*.sh" +--- + +# Bash & Tooling Instructions + +This document outlines the standard tools and commands used in this monorepo. + +## Package Manager + +We use **pnpm** for package management. +- **Do not use `npm` or `yarn`.** +- Lockfile: `pnpm-lock.yaml` +- Workspace configuration: `pnpm-workspace.yaml` + +### Common Commands +- Install dependencies: `pnpm install` +- Run a script in a specific package: `pnpm --filter run