[FEAT] Implement modules page projects modules#35
Conversation
…ters, Add work item)
…ted module and saves via patch
…sing + formatting
There was a problem hiding this comment.
Pull request overview
This PR expands the UI’s “Modules” functionality (service layer + routing + new module-related UI utilities/components), introduces shared filtering/favorites state for modules, and updates a large set of UI components to use Tailwind v4 CSS-variable utility syntax. It also adds local date-only parsing/formatting utilities to avoid UTC off-by-one issues in date pickers.
Changes:
- Add module CRUD/service helpers (
get/create/update) plus module issue ID listing to support module detail/edit flows. - Introduce module-focused UI building blocks: module filter context/panel, module favorites hook, module update modal, and “add existing work items” modal.
- Refactor many UI components to a Tailwind v4-friendly CSS variable utility syntax and update the date range modal to use date-only local parsing.
Reviewed changes
Copilot reviewed 82 out of 83 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| ui/src/services/moduleService.ts | Adds module get/create/update and listIssueIds helpers plus a create/update payload type. |
| ui/src/routes/ProtectedRoute.tsx | Updates loading UI classnames; file now includes BOM. |
| ui/src/routes/InstanceAdminProtectedRoute.tsx | Updates loading UI classnames; file now includes BOM. |
| ui/src/routes/index.tsx | Adds lazy route for ModuleDetailPage under project routes and updates fallback styles. |
| ui/src/pages/ViewsPage.tsx | Tailwind var-syntax refactor for view list loading/empty states. |
| ui/src/pages/setup/InstanceSetupWelcomePage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/setup/InstanceSetupConfigurePage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/setup/InstanceSetupCompletePage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/ProjectsListPage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/ProjectHomePage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/PagesPage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/NotificationsPage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/LoginPage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/IssueListPage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/InviteSignUpPage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/InviteAcceptPage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/instance-admin/InstanceAdminWorkspacePage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/instance-admin/InstanceAdminLoginPage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/instance-admin/InstanceAdminImagePage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/instance-admin/InstanceAdminGeneralPage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/instance-admin/InstanceAdminEmailPage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/instance-admin/InstanceAdminCreateWorkspacePage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/instance-admin/InstanceAdminAuthenticationPage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/instance-admin/InstanceAdminAIPage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/DraftsPage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/CyclesPage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/BoardPage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/ArchivesPage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/AnalyticsWorkItemsPage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/pages/AnalyticsOverviewPage.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/lib/slug.ts | Adds a shared slugify() helper. |
| ui/src/lib/dateOnly.ts | Adds date-only local parsing/formatting utilities to avoid UTC date shifts. |
| ui/src/hooks/useModuleFavorites.ts | Adds localStorage-backed module favorites hook keyed by workspace/project. |
| ui/src/contexts/ModulesFilterContext.tsx | Adds module filter state context/provider + hooks. |
| ui/src/components/workspace-views/WorkspaceViewsLayoutSelector.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersShared.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersPanel.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersDropdown.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersData.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/workspace-views/WorkspaceViewsEllipsisMenu.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/workspace-views/WorkspaceViewsDisplayPanel.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/workspace-views/WorkspaceViewsDisplayDropdown.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/workspace-views/ModuleFiltersPanel.tsx | New module-specific filters UI that integrates with ModulesFilterContext. |
| ui/src/components/workspace-views/index.ts | Exports the new ModuleFiltersPanel. |
| ui/src/components/workspace-views/DateRangeModal.tsx | Switches date handling to date-only local parse/format utils + Tailwind var-syntax refactor. |
| ui/src/components/workspace-views/CreateViewModal.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/work-item/SelectParentModal.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/work-item/Dropdown.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/work-item/DatePickerTrigger.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/work-item/CommentEditor.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/UploadImageModal.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/UpdateModuleModal.tsx | Adds a modal for updating module fields (name/description/status/dates) using module service. |
| ui/src/components/ui/Skeleton.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/ui/Modal.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/ui/Input.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/ui/Card.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/ui/Button.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/ui/Badge.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/ui/Avatar.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/SetupGate.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/RootRedirect.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/ProjectNetworkSelect.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/ProjectLeadSelect.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/ProjectIconModal.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/layout/InstanceAdminLayout.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/layout/Header.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/layout/AppShell.tsx | Wraps app content with ModulesFilterProvider and refactors Tailwind var-syntax usage. |
| ui/src/components/instance-admin/CreateWorkspaceSetupHint.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/CreateProjectModal.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/CoverImageModal.tsx | Tailwind var-syntax refactor; file now includes BOM. |
| ui/src/components/AddExistingWorkItemModal.tsx | New modal to add existing work items to a module via per-issue API calls. |
| ui/src/api/types.ts | Extends ModuleApiResponse with optional lead_id. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Pull request overview
This PR expands the UI’s “Modules” capabilities by adding module detail routing, richer module CRUD/service helpers, and new module-focused filtering/favorites UX; it also introduces date-only utilities and updates many components/pages to Tailwind v4 CSS-variable utility syntax.
Changes:
- Add module API helpers (get/create/update/listIssueIds) and introduce module lead/date payload typing.
- Add module detail route and module filter/favorites infrastructure (context, hook, filters panel) plus new module-related modals.
- Introduce date-only parsing/formatting helpers and apply them to date-range UI.
Reviewed changes
Copilot reviewed 82 out of 83 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| ui/src/services/moduleService.ts | Adds module get/create/update helpers and listIssueIds; introduces CreateModulePayload typing. |
| ui/src/routes/ProtectedRoute.tsx | Updates loading-state styling (Tailwind v4 CSS-var syntax) and modifies file header. |
| ui/src/routes/InstanceAdminProtectedRoute.tsx | Updates loading-state styling (Tailwind v4 CSS-var syntax) and modifies file header. |
| ui/src/routes/index.tsx | Adds lazy-loaded ModuleDetailPage and a module detail route. |
| ui/src/pages/ViewsPage.tsx | Tailwind v4 CSS-var utility migration and minor JSX refactors. |
| ui/src/pages/setup/InstanceSetupWelcomePage.tsx | Tailwind v4 CSS-var utility migration. |
| ui/src/pages/setup/InstanceSetupConfigurePage.tsx | Tailwind v4 CSS-var utility migration across setup form UI. |
| ui/src/pages/setup/InstanceSetupCompletePage.tsx | Tailwind v4 CSS-var utility migration for completion UI. |
| ui/src/pages/ProjectsListPage.tsx | Tailwind v4 CSS-var utility migration and minor JSX refactors. |
| ui/src/pages/ProjectHomePage.tsx | Tailwind v4 CSS-var utility migration and minor JSX refactors. |
| ui/src/pages/PagesPage.tsx | Tailwind v4 CSS-var utility migration across pages list UI. |
| ui/src/pages/NotificationsPage.tsx | Tailwind v4 CSS-var utility migration across notifications UI. |
| ui/src/pages/LoginPage.tsx | Tailwind v4 CSS-var utility migration for login layout. |
| ui/src/pages/IssueListPage.tsx | Tailwind v4 CSS-var utility migration across issue list UI. |
| ui/src/pages/InviteSignUpPage.tsx | Tailwind v4 CSS-var utility migration across invite signup UI. |
| ui/src/pages/InviteAcceptPage.tsx | Tailwind v4 CSS-var utility migration across invite accept UI. |
| ui/src/pages/instance-admin/InstanceAdminWorkspacePage.tsx | Tailwind v4 CSS-var utility migration for instance admin workspace page. |
| ui/src/pages/instance-admin/InstanceAdminLoginPage.tsx | Tailwind v4 CSS-var utility migration for instance admin login. |
| ui/src/pages/instance-admin/InstanceAdminImagePage.tsx | Tailwind v4 CSS-var utility migration for image settings. |
| ui/src/pages/instance-admin/InstanceAdminGeneralPage.tsx | Tailwind v4 CSS-var utility migration for general settings. |
| ui/src/pages/instance-admin/InstanceAdminEmailPage.tsx | Tailwind v4 CSS-var utility migration for email settings. |
| ui/src/pages/instance-admin/InstanceAdminCreateWorkspacePage.tsx | Tailwind v4 CSS-var utility migration for create workspace UI. |
| ui/src/pages/instance-admin/InstanceAdminAuthenticationPage.tsx | Tailwind v4 CSS-var utility migration for auth settings. |
| ui/src/pages/instance-admin/InstanceAdminAIPage.tsx | Tailwind v4 CSS-var utility migration for AI settings. |
| ui/src/pages/DraftsPage.tsx | Tailwind v4 CSS-var utility migration and minor JSX refactor. |
| ui/src/pages/CyclesPage.tsx | Tailwind v4 CSS-var utility migration across cycles UI. |
| ui/src/pages/BoardPage.tsx | Tailwind v4 CSS-var utility migration across board UI. |
| ui/src/pages/ArchivesPage.tsx | Tailwind v4 CSS-var utility migration and minor JSX refactor. |
| ui/src/pages/AnalyticsWorkItemsPage.tsx | Tailwind v4 CSS-var utility migration across analytics UI. |
| ui/src/pages/AnalyticsOverviewPage.tsx | Tailwind v4 CSS-var utility migration across analytics UI. |
| ui/src/lib/slug.ts | Adds slugify helper for consistent slug generation. |
| ui/src/lib/dateOnly.ts | Adds date-only parse/format/display utilities (local-date safe). |
| ui/src/hooks/useModuleFavorites.ts | Adds localStorage-backed module favorites hook scoped by workspace+project. |
| ui/src/contexts/ModulesFilterContext.tsx | Adds modules filter state context/provider and related hooks. |
| ui/src/components/workspace-views/WorkspaceViewsLayoutSelector.tsx | Tailwind v4 CSS-var utility migration. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersShared.tsx | Tailwind v4 CSS-var utility migration. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersPanel.tsx | Tailwind v4 CSS-var utility migration for shared filters panel. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersDropdown.tsx | Tailwind v4 CSS-var utility migration for dropdown panel styling. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersData.tsx | Tailwind v4 CSS-var utility migration for filter icon styling. |
| ui/src/components/workspace-views/WorkspaceViewsEllipsisMenu.tsx | Tailwind v4 CSS-var utility migration for ellipsis menu UI. |
| ui/src/components/workspace-views/WorkspaceViewsDisplayPanel.tsx | Tailwind v4 CSS-var utility migration for display panel UI. |
| ui/src/components/workspace-views/WorkspaceViewsDisplayDropdown.tsx | Tailwind v4 CSS-var utility migration for display dropdown UI. |
| ui/src/components/workspace-views/ModuleFiltersPanel.tsx | Adds a dedicated module filters panel (status/lead/members/date presets). |
| ui/src/components/workspace-views/index.ts | Re-exports ModuleFiltersPanel. |
| ui/src/components/workspace-views/DateRangeModal.tsx | Switches to date-only local parsing/formatting helpers; Tailwind v4 CSS-var migration. |
| ui/src/components/workspace-views/CreateViewModal.tsx | Tailwind v4 CSS-var utility migration. |
| ui/src/components/work-item/SelectParentModal.tsx | Tailwind v4 CSS-var utility migration. |
| ui/src/components/work-item/Dropdown.tsx | Tailwind v4 CSS-var utility migration for dropdown styling. |
| ui/src/components/work-item/DatePickerTrigger.tsx | Tailwind v4 CSS-var utility migration for trigger styling. |
| ui/src/components/work-item/CommentEditor.tsx | Tailwind v4 CSS-var utility migration for editor UI. |
| ui/src/components/UploadImageModal.tsx | Tailwind v4 CSS-var utility migration for upload modal UI. |
| ui/src/components/UpdateModuleModal.tsx | Adds modal UI for updating module fields (name/desc/dates/status/lead). |
| ui/src/components/ui/Skeleton.tsx | Tailwind v4 CSS-var utility migration for skeleton color. |
| ui/src/components/ui/Modal.tsx | Tailwind v4 CSS-var utility migration for modal base styling. |
| ui/src/components/ui/Input.tsx | Tailwind v4 CSS-var utility migration for input base styling and error styles. |
| ui/src/components/ui/Card.tsx | Tailwind v4 CSS-var utility migration for card styling. |
| ui/src/components/ui/Button.tsx | Tailwind v4 CSS-var utility migration for button variants/sizes. |
| ui/src/components/ui/Badge.tsx | Tailwind v4 CSS-var utility migration for badge variants. |
| ui/src/components/ui/Avatar.tsx | Tailwind v4 CSS-var utility migration for avatar styling. |
| ui/src/components/SetupGate.tsx | Tailwind v4 CSS-var utility migration for loading fallback. |
| ui/src/components/RootRedirect.tsx | Tailwind v4 CSS-var utility migration for loading and empty-state UI. |
| ui/src/components/ProjectNetworkSelect.tsx | Tailwind v4 CSS-var utility migration for select styling. |
| ui/src/components/ProjectLeadSelect.tsx | Tailwind v4 CSS-var utility migration for select styling. |
| ui/src/components/ProjectIconModal.tsx | Tailwind v4 CSS-var utility migration for modal UI. |
| ui/src/components/layout/InstanceAdminLayout.tsx | Tailwind v4 CSS-var utility migration across instance admin layout. |
| ui/src/components/layout/Header.tsx | Tailwind v4 CSS-var utility migration across header layout. |
| ui/src/components/layout/AppShell.tsx | Wraps app content in ModulesFilterProvider; Tailwind v4 CSS-var utility migration. |
| ui/src/components/instance-admin/CreateWorkspaceSetupHint.tsx | Tailwind v4 CSS-var utility migration for setup hint UI. |
| ui/src/components/CreateProjectModal.tsx | Tailwind v4 CSS-var utility migration for create project modal. |
| ui/src/components/CoverImageModal.tsx | Tailwind v4 CSS-var utility migration for cover image modal. |
| ui/src/components/AddExistingWorkItemModal.tsx | Adds modal to select existing work items and link them to a module. |
| ui/src/api/types.ts | Extends ModuleApiResponse with optional lead_id. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Pull request overview
This PR expands the UI’s Modules feature set (detail route, editing, filtering/favorites) and extends the backend Module update API to support setting/clearing a module lead, alongside a broad Tailwind v4 CSS-variable class migration across many UI components.
Changes:
- Add module detail routing + module CRUD service methods, plus new modals for updating modules and adding existing work items.
- Introduce module filter state/context and local “module favorites” storage.
- Add date-only utilities (local parsing/formatting) and update DateRangeModal to avoid UTC off-by-one issues; backend update now supports
lead_id.
Reviewed changes
Copilot reviewed 84 out of 85 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| ui/src/services/moduleService.ts | Adds get/create/update/listIssueIds and a module payload type. |
| ui/src/routes/ProtectedRoute.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/routes/InstanceAdminProtectedRoute.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/routes/index.tsx | Adds ModuleDetailPage lazy import + nested route; updates fallback styles. |
| ui/src/pages/ViewsPage.tsx | Tailwind CSS-variable class migration; formatting simplification. |
| ui/src/pages/setup/InstanceSetupWelcomePage.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/pages/setup/InstanceSetupConfigurePage.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/pages/setup/InstanceSetupCompletePage.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/pages/ProjectsListPage.tsx | Tailwind CSS-variable class migration; formatting simplification. |
| ui/src/pages/ProjectHomePage.tsx | Tailwind CSS-variable class migration; formatting simplification. |
| ui/src/pages/PagesPage.tsx | Tailwind CSS-variable class migration; formatting simplification. |
| ui/src/pages/NotificationsPage.tsx | Tailwind CSS-variable class migration; formatting simplification. |
| ui/src/pages/LoginPage.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/pages/IssueListPage.tsx | Tailwind CSS-variable class migration; formatting simplification. |
| ui/src/pages/InviteSignUpPage.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/pages/InviteAcceptPage.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/pages/instance-admin/InstanceAdminWorkspacePage.tsx | Tailwind CSS-variable class migration; formatting simplification. |
| ui/src/pages/instance-admin/InstanceAdminLoginPage.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/pages/instance-admin/InstanceAdminImagePage.tsx | Tailwind CSS-variable class migration; formatting simplification. |
| ui/src/pages/instance-admin/InstanceAdminGeneralPage.tsx | Tailwind CSS-variable class migration; formatting simplification. |
| ui/src/pages/instance-admin/InstanceAdminEmailPage.tsx | Tailwind CSS-variable class migration; formatting simplification. |
| ui/src/pages/instance-admin/InstanceAdminCreateWorkspacePage.tsx | Tailwind CSS-variable class migration; formatting simplification. |
| ui/src/pages/instance-admin/InstanceAdminAuthenticationPage.tsx | Tailwind CSS-variable class migration; formatting simplification. |
| ui/src/pages/instance-admin/InstanceAdminAIPage.tsx | Tailwind CSS-variable class migration; formatting simplification. |
| ui/src/pages/DraftsPage.tsx | Tailwind CSS-variable class migration; formatting simplification. |
| ui/src/pages/CyclesPage.tsx | Tailwind CSS-variable class migration; formatting simplification. |
| ui/src/pages/BoardPage.tsx | Tailwind CSS-variable class migration; formatting simplification. |
| ui/src/pages/ArchivesPage.tsx | Tailwind CSS-variable class migration; formatting simplification. |
| ui/src/pages/AnalyticsWorkItemsPage.tsx | Tailwind CSS-variable class migration; formatting simplification. |
| ui/src/pages/AnalyticsOverviewPage.tsx | Tailwind CSS-variable class migration; formatting simplification. |
| ui/src/lib/slug.ts | New slugify() utility. |
| ui/src/lib/dateOnly.ts | New date-only parsing/formatting helpers (local-date safe). |
| ui/src/hooks/useModuleFavorites.ts | New hook for per-workspace/project module favorites in localStorage. |
| ui/src/contexts/ModulesFilterContext.tsx | New context/provider + hooks for module filter state. |
| ui/src/components/workspace-views/WorkspaceViewsLayoutSelector.tsx | Tailwind CSS-variable class migration. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersShared.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersPanel.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersDropdown.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersData.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/workspace-views/WorkspaceViewsEllipsisMenu.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/workspace-views/WorkspaceViewsDisplayPanel.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/workspace-views/WorkspaceViewsDisplayDropdown.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/workspace-views/ModuleFiltersPanel.tsx | New module-specific filters UI (status/lead/members/date presets). |
| ui/src/components/workspace-views/index.ts | Exports the new ModuleFiltersPanel. |
| ui/src/components/workspace-views/DateRangeModal.tsx | Switches date parsing/formatting to date-only local helpers; Tailwind migration. |
| ui/src/components/workspace-views/CreateViewModal.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/work-item/SelectParentModal.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/work-item/Dropdown.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/work-item/DatePickerTrigger.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/work-item/CommentEditor.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/UploadImageModal.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/UpdateModuleModal.tsx | New modal for editing module fields incl. lead + date range. |
| ui/src/components/AddExistingWorkItemModal.tsx | New modal to bulk-add existing issues to a module. |
| ui/src/components/ui/Skeleton.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/ui/Modal.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/ui/Input.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/ui/Card.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/ui/Button.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/ui/Badge.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/ui/Avatar.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/SetupGate.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/RootRedirect.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/ProjectNetworkSelect.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/ProjectLeadSelect.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/ProjectIconModal.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/layout/InstanceAdminLayout.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/layout/Header.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/layout/AppShell.tsx | Wraps app in ModulesFilterProvider; Tailwind CSS-variable class migration. |
| ui/src/components/instance-admin/CreateWorkspaceSetupHint.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/CreateProjectModal.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/components/CoverImageModal.tsx | Tailwind CSS-variable class migration; file encoding change at import line. |
| ui/src/api/types.ts | Adds optional lead_id to ModuleApiResponse. |
| api/internal/service/module.go | Extends Module Update to optionally set/clear LeadID. |
| api/internal/handler/module.go | Adds lead_id parsing to Update handler; passes a “lead set” flag to service. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
…extract shared constants
There was a problem hiding this comment.
Pull request overview
This PR expands the “Modules” feature area (detail view, filtering, favorites, and editing), adds backend support for updating a module’s lead_id, and performs a broad Tailwind CSS variable-shorthand refactor across the UI.
Changes:
- Add module detail routing + module CRUD helpers (get/create/update) and supporting UI components/modals.
- Introduce modules filtering state (context + filters panel) and local “module favorites” hook.
- Refactor many UI components to Tailwind v4 CSS-variable shorthand classes (e.g.,
text-(--var)).
Reviewed changes
Copilot reviewed 85 out of 86 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| ui/src/services/moduleService.ts | Adds module get/create/update + listIssueIds client APIs. |
| ui/src/routes/ProtectedRoute.tsx | Tailwind var-shorthand class refactor for loading state. |
| ui/src/routes/InstanceAdminProtectedRoute.tsx | Tailwind var-shorthand class refactor for loading state. |
| ui/src/routes/index.tsx | Adds lazy-loaded ModuleDetailPage and route modules/:moduleId; updates fallback styling. |
| ui/src/pages/WorkspaceHomePage.tsx | Tailwind var-shorthand refactor across the page. |
| ui/src/pages/ViewsPage.tsx | Tailwind var-shorthand refactor across the page. |
| ui/src/pages/setup/InstanceSetupWelcomePage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/setup/InstanceSetupConfigurePage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/setup/InstanceSetupCompletePage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/ProjectsListPage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/ProjectHomePage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/PagesPage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/NotificationsPage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/LoginPage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/IssueListPage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/InviteSignUpPage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/InviteAcceptPage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/instance-admin/InstanceAdminWorkspacePage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/instance-admin/InstanceAdminLoginPage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/instance-admin/InstanceAdminImagePage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/instance-admin/InstanceAdminGeneralPage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/instance-admin/InstanceAdminEmailPage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/instance-admin/InstanceAdminCreateWorkspacePage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/instance-admin/InstanceAdminAuthenticationPage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/instance-admin/InstanceAdminAIPage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/DraftsPage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/CyclesPage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/BoardPage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/ArchivesPage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/AnalyticsWorkItemsPage.tsx | Tailwind var-shorthand refactor. |
| ui/src/pages/AnalyticsOverviewPage.tsx | Tailwind var-shorthand refactor. |
| ui/src/lib/slug.ts | Adds a shared slugify helper. |
| ui/src/lib/moduleStatuses.ts | Adds module status constants used by module UI. |
| ui/src/lib/dateOnly.ts | Adds local date-only parsing/formatting helpers. |
| ui/src/hooks/useModuleFavorites.ts | Adds localStorage-backed module favorites hook. |
| ui/src/contexts/ModulesFilterContext.tsx | Adds modules filter state context + provider/hooks. |
| ui/src/components/workspace-views/WorkspaceViewsLayoutSelector.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersShared.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersPanel.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersDropdown.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersData.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/workspace-views/WorkspaceViewsEllipsisMenu.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/workspace-views/WorkspaceViewsDisplayPanel.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/workspace-views/WorkspaceViewsDisplayDropdown.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/workspace-views/ModuleFiltersPanel.tsx | Adds new modules-specific filters UI hooked to ModulesFilterContext. |
| ui/src/components/workspace-views/index.ts | Exports ModuleFiltersPanel. |
| ui/src/components/workspace-views/DateRangeModal.tsx | Uses new date-only local parsing/formatting helpers + Tailwind refactor. |
| ui/src/components/workspace-views/CreateViewModal.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/work-item/SelectParentModal.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/work-item/Dropdown.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/work-item/DatePickerTrigger.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/work-item/CommentEditor.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/UploadImageModal.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/UpdateModuleModal.tsx | Adds module update UI including lead selection + date/status dropdowns. |
| ui/src/components/ui/Skeleton.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/ui/Modal.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/ui/Input.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/ui/Card.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/ui/Button.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/ui/Badge.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/ui/Avatar.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/SetupGate.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/RootRedirect.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/ProjectNetworkSelect.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/ProjectLeadSelect.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/ProjectIconModal.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/layout/InstanceAdminLayout.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/layout/Header.tsx | Tailwind var-shorthand refactor (incl. variable-driven height). |
| ui/src/components/layout/AppShell.tsx | Wraps app in ModulesFilterProvider + Tailwind var-shorthand refactor. |
| ui/src/components/instance-admin/CreateWorkspaceSetupHint.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/CreateProjectModal.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/CoverImageModal.tsx | Tailwind var-shorthand refactor. |
| ui/src/components/AddExistingWorkItemModal.tsx | Adds modal to add existing work items to a module. |
| ui/src/api/types.ts | Extends ModuleApiResponse with optional nullable lead_id. |
| api/internal/service/module.go | Extends module update service to optionally set/clear lead_id. |
| api/internal/handler/module.go | Accepts lead_id on module PATCH update and validates UUID when provided. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
…uard, empty title validation
There was a problem hiding this comment.
Pull request overview
This PR expands the Modules UI by adding module detail navigation and supporting module CRUD interactions, while also modernizing Tailwind CSS variable usage across multiple pages/components.
Changes:
- Add module detail routing and supporting module API service methods (get/create/update/listIssueIds).
- Introduce/update module filtering and module editing UI (status/dates/lead), plus supporting shared date-only helpers.
- Refactor multiple UI routes/pages to Tailwind v4 CSS-variable shorthand classes (e.g.,
text-(--...)).
Reviewed changes
Copilot reviewed 85 out of 86 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| ui/src/services/moduleService.ts | Adds module get/create/update and module issue-id listing helpers. |
| ui/src/routes/index.tsx | Adds lazy-loaded ModuleDetailPage and a modules/:moduleId route. |
| ui/src/routes/ProtectedRoute.tsx | Converts loading-state text color class to Tailwind CSS-variable shorthand. |
| ui/src/routes/InstanceAdminProtectedRoute.tsx | Converts loading-state text color class to Tailwind CSS-variable shorthand. |
| ui/src/pages/WorkspaceHomePage.tsx | Broad conversion to Tailwind CSS-variable shorthand across the page. |
| ui/src/pages/ViewsPage.tsx | Converts loading/not-found and other text/UI classes to Tailwind CSS-variable shorthand. |
| ui/src/pages/ModulesPage.tsx | Implements module filtering/sorting/date filtering logic and module list rendering. |
| ui/src/components/UpdateModuleModal.tsx | Adds/updates module editing UI including date-range and lead selection. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Pull request overview
This PR expands the UI + API surface around “Modules” (detail route, filters, favorites, update flows) and standardizes UI styling to Tailwind v4 CSS-variable shorthand classes, while adding backend support for updating a module’s lead_id.
Changes:
- Add module service helpers + UI components (module detail route, filter context/panel, favorites hook, update & add-existing-work-item modals).
- Add date-only parsing/formatting utilities and module status constants to support module date/filter UX.
- Refactor many UI components/pages to use Tailwind CSS-variable shorthand utilities (e.g.
text-(--token)).
Reviewed changes
Copilot reviewed 85 out of 86 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| ui/src/services/moduleService.ts | Adds module get/create/update and module issue-id listing helpers. |
| ui/src/routes/ProtectedRoute.tsx | Updates Tailwind token class syntax for loading state. |
| ui/src/routes/InstanceAdminProtectedRoute.tsx | Updates Tailwind token class syntax for loading state. |
| ui/src/routes/index.tsx | Adds lazy-loaded ModuleDetailPage route and updates fallback styling tokens. |
| ui/src/pages/WorkspaceHomePage.tsx | Tailwind token shorthand refactor across workspace home UI. |
| ui/src/pages/ViewsPage.tsx | Tailwind token shorthand refactor for views list UI. |
| ui/src/pages/setup/InstanceSetupWelcomePage.tsx | Tailwind token shorthand refactor for setup welcome UI. |
| ui/src/pages/setup/InstanceSetupConfigurePage.tsx | Tailwind token shorthand refactor for setup configure UI. |
| ui/src/pages/setup/InstanceSetupCompletePage.tsx | Tailwind token shorthand refactor for setup completion UI. |
| ui/src/pages/ProjectsListPage.tsx | Tailwind token shorthand refactor for projects list UI. |
| ui/src/pages/ProjectHomePage.tsx | Tailwind token shorthand refactor for project home UI. |
| ui/src/pages/PagesPage.tsx | Tailwind token shorthand refactor for pages UI. |
| ui/src/pages/NotificationsPage.tsx | Tailwind token shorthand refactor for notifications UI. |
| ui/src/pages/LoginPage.tsx | Tailwind token shorthand refactor for login UI. |
| ui/src/pages/IssueListPage.tsx | Tailwind token shorthand refactor for issue list UI. |
| ui/src/pages/InviteSignUpPage.tsx | Tailwind token shorthand refactor for invite signup UI. |
| ui/src/pages/InviteAcceptPage.tsx | Tailwind token shorthand refactor for invite accept UI. |
| ui/src/pages/instance-admin/InstanceAdminWorkspacePage.tsx | Tailwind token shorthand refactor for instance admin workspaces UI. |
| ui/src/pages/instance-admin/InstanceAdminLoginPage.tsx | Tailwind token shorthand refactor for instance admin login UI. |
| ui/src/pages/instance-admin/InstanceAdminImagePage.tsx | Tailwind token shorthand refactor for instance admin image UI. |
| ui/src/pages/instance-admin/InstanceAdminGeneralPage.tsx | Tailwind token shorthand refactor for instance admin general UI. |
| ui/src/pages/instance-admin/InstanceAdminEmailPage.tsx | Tailwind token shorthand refactor for instance admin email UI. |
| ui/src/pages/instance-admin/InstanceAdminCreateWorkspacePage.tsx | Tailwind token shorthand refactor for instance admin create-workspace UI. |
| ui/src/pages/instance-admin/InstanceAdminAuthenticationPage.tsx | Tailwind token shorthand refactor for instance admin auth UI. |
| ui/src/pages/instance-admin/InstanceAdminAIPage.tsx | Tailwind token shorthand refactor for instance admin AI UI. |
| ui/src/pages/DraftsPage.tsx | Tailwind token shorthand refactor for drafts placeholder page. |
| ui/src/pages/CyclesPage.tsx | Tailwind token shorthand refactor for cycles UI. |
| ui/src/pages/BoardPage.tsx | Tailwind token shorthand refactor for board UI. |
| ui/src/pages/ArchivesPage.tsx | Tailwind token shorthand refactor for archives placeholder page. |
| ui/src/pages/AnalyticsWorkItemsPage.tsx | Tailwind token shorthand refactor for analytics work-items UI. |
| ui/src/pages/AnalyticsOverviewPage.tsx | Tailwind token shorthand refactor for analytics overview UI. |
| ui/src/lib/slug.ts | Adds shared slugify helper. |
| ui/src/lib/moduleStatuses.ts | Adds MODULE_STATUSES constant list for module status UI. |
| ui/src/lib/dateOnly.ts | Adds local date-only parse/format helpers to avoid UTC off-by-one. |
| ui/src/hooks/useModuleFavorites.ts | Adds localStorage-backed module favorites hook. |
| ui/src/contexts/ModulesFilterContext.tsx | Adds modules filter state context/provider + hooks. |
| ui/src/components/workspace-views/WorkspaceViewsLayoutSelector.tsx | Tailwind token shorthand refactor for layout selector. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersShared.tsx | Tailwind token shorthand refactor for shared filters UI. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersPanel.tsx | Tailwind token shorthand refactor for filters panel. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersDropdown.tsx | Tailwind token shorthand refactor for dropdown panel styling. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersData.tsx | Tailwind token shorthand refactor for filter icons/styles. |
| ui/src/components/workspace-views/WorkspaceViewsEllipsisMenu.tsx | Tailwind token shorthand refactor for ellipsis menu panel. |
| ui/src/components/workspace-views/WorkspaceViewsDisplayPanel.tsx | Tailwind token shorthand refactor for display panel. |
| ui/src/components/workspace-views/WorkspaceViewsDisplayDropdown.tsx | Tailwind token shorthand refactor for display dropdown panel. |
| ui/src/components/workspace-views/ModuleFiltersPanel.tsx | Adds module-specific filters UI integrated with ModulesFilterContext. |
| ui/src/components/workspace-views/index.ts | Exports newly added ModuleFiltersPanel. |
| ui/src/components/workspace-views/DateRangeModal.tsx | Uses local date-only helpers for parsing/formatting in date range UI. |
| ui/src/components/workspace-views/CreateViewModal.tsx | Tailwind token shorthand refactor for modal styles/errors. |
| ui/src/components/work-item/SelectParentModal.tsx | Tailwind token shorthand refactor for modal UI. |
| ui/src/components/work-item/Dropdown.tsx | Tailwind token shorthand refactor for dropdown UI. |
| ui/src/components/work-item/DatePickerTrigger.tsx | Tailwind token shorthand refactor for date trigger UI. |
| ui/src/components/work-item/CommentEditor.tsx | Tailwind token shorthand refactor for editor UI. |
| ui/src/components/UploadImageModal.tsx | Tailwind token shorthand refactor for upload modal UI. |
| ui/src/components/UpdateModuleModal.tsx | Adds module update modal (dates/status/lead) using moduleService + date modal. |
| ui/src/components/ui/Skeleton.tsx | Tailwind token shorthand refactor for skeleton background token. |
| ui/src/components/ui/Modal.tsx | Tailwind token shorthand refactor for modal container tokens. |
| ui/src/components/ui/Input.tsx | Tailwind token shorthand refactor for input tokens + error styling. |
| ui/src/components/ui/Card.tsx | Tailwind token shorthand refactor for card tokens (border/shadow). |
| ui/src/components/ui/Button.tsx | Tailwind token shorthand refactor for button variant/size tokens. |
| ui/src/components/ui/Badge.tsx | Tailwind token shorthand refactor for badge variants. |
| ui/src/components/ui/Avatar.tsx | Tailwind token shorthand refactor for avatar default styling. |
| ui/src/components/SetupGate.tsx | Tailwind token shorthand refactor for loading fallback. |
| ui/src/components/RootRedirect.tsx | Tailwind token shorthand refactor for fallback + empty state text. |
| ui/src/components/ProjectNetworkSelect.tsx | Tailwind token shorthand refactor for select styling. |
| ui/src/components/ProjectLeadSelect.tsx | Tailwind token shorthand refactor for select styling. |
| ui/src/components/ProjectIconModal.tsx | Tailwind token shorthand refactor for icon modal styling. |
| ui/src/components/layout/InstanceAdminLayout.tsx | Tailwind token shorthand refactor for instance admin layout styling. |
| ui/src/components/layout/Header.tsx | Tailwind token shorthand refactor (including CSS-var height token utility). |
| ui/src/components/layout/AppShell.tsx | Wraps app in ModulesFilterProvider and refactors shell token utilities. |
| ui/src/components/instance-admin/CreateWorkspaceSetupHint.tsx | Tailwind token shorthand refactor for setup hint card. |
| ui/src/components/CreateProjectModal.tsx | Tailwind token shorthand refactor for create-project modal UI. |
| ui/src/components/CoverImageModal.tsx | Tailwind token shorthand refactor for cover image modal UI. |
| ui/src/components/AddExistingWorkItemModal.tsx | Adds modal to add existing work items to a module via moduleService. |
| ui/src/api/types.ts | Extends ModuleApiResponse to include optional lead_id. |
| api/internal/service/module.go | Extends ModuleService.Update to optionally set/clear LeadID. |
| api/internal/handler/module.go | Parses/validates lead_id in module update handler and passes set intent to service. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
This pull request introduces two main types of changes: (1) backend and API updates to support a new optional
lead_idfield for modules, and (2) frontend improvements, including a new modal for adding existing work items to a module and a refactor of CSS variable usage for consistency and maintainability.Backend/API changes:
lead_idfield when updating a module, including validation and propagation through the handler and service layers. (api/internal/handler/module.go,api/internal/service/module.go) [1] [2] [3]ModuleApiResponsetype to include the new optionallead_idfield. (ui/src/api/types.ts)Frontend/UI changes:
AddExistingWorkItemModalReact component, allowing users to search for and add multiple existing work items (issues) to a module with batch processing and improved UX. (ui/src/components/AddExistingWorkItemModal.tsx)CoverImageModal,CreateProjectModal) to use a more consistent CSS variable syntax (e.g.,bg-(--bg-backdrop)instead ofbg-[var(--bg-backdrop)]), improving style maintainability and readability. (ui/src/components/CoverImageModal.tsx,ui/src/components/CreateProjectModal.tsx) [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]Closes #31