@gostack-framework/ui 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE.md +5 -0
- package/dist/activity/index.d.ts +2 -0
- package/dist/activity/index.js +3 -0
- package/dist/activity/index.js.map +1 -0
- package/dist/clickup/common/InlineNameTab.d.ts +11 -0
- package/dist/clickup/common/InlineNameTab.js +50 -0
- package/dist/clickup/common/InlineNameTab.js.map +1 -0
- package/dist/clickup/common/TaskAssigneeAvatar.d.ts +14 -0
- package/dist/clickup/common/TaskAssigneeAvatar.js +32 -0
- package/dist/clickup/common/TaskAssigneeAvatar.js.map +1 -0
- package/dist/clickup/common/TaskBreadcrumb.d.ts +11 -0
- package/dist/clickup/common/TaskBreadcrumb.js +11 -0
- package/dist/clickup/common/TaskBreadcrumb.js.map +1 -0
- package/dist/clickup/common/TaskCheck.d.ts +10 -0
- package/dist/clickup/common/TaskCheck.js +17 -0
- package/dist/clickup/common/TaskCheck.js.map +1 -0
- package/dist/clickup/common/TaskContextMenu.d.ts +10 -0
- package/dist/clickup/common/TaskContextMenu.js +22 -0
- package/dist/clickup/common/TaskContextMenu.js.map +1 -0
- package/dist/clickup/common/TaskIcon.d.ts +29 -0
- package/dist/clickup/common/TaskIcon.js +30 -0
- package/dist/clickup/common/TaskIcon.js.map +1 -0
- package/dist/clickup/common/TaskPriorityBadge.d.ts +11 -0
- package/dist/clickup/common/TaskPriorityBadge.js +11 -0
- package/dist/clickup/common/TaskPriorityBadge.js.map +1 -0
- package/dist/clickup/common/TaskRowActionMenu.d.ts +6 -0
- package/dist/clickup/common/TaskRowActionMenu.js +10 -0
- package/dist/clickup/common/TaskRowActionMenu.js.map +1 -0
- package/dist/clickup/common/TaskStatusPill.d.ts +12 -0
- package/dist/clickup/common/TaskStatusPill.js +24 -0
- package/dist/clickup/common/TaskStatusPill.js.map +1 -0
- package/dist/clickup/common/WorkspaceButton.d.ts +3 -0
- package/dist/clickup/common/WorkspaceButton.js +8 -0
- package/dist/clickup/common/WorkspaceButton.js.map +1 -0
- package/dist/clickup/common/WorkspaceHeader.d.ts +9 -0
- package/dist/clickup/common/WorkspaceHeader.js +7 -0
- package/dist/clickup/common/WorkspaceHeader.js.map +1 -0
- package/dist/clickup/common/WorkspaceMenus.d.ts +17 -0
- package/dist/clickup/common/WorkspaceMenus.js +15 -0
- package/dist/clickup/common/WorkspaceMenus.js.map +1 -0
- package/dist/clickup/common/WorkspaceMessage.d.ts +7 -0
- package/dist/clickup/common/WorkspaceMessage.js +6 -0
- package/dist/clickup/common/WorkspaceMessage.js.map +1 -0
- package/dist/clickup/common/WorkspaceMetricStrip.d.ts +10 -0
- package/dist/clickup/common/WorkspaceMetricStrip.js +6 -0
- package/dist/clickup/common/WorkspaceMetricStrip.js.map +1 -0
- package/dist/clickup/common/WorkspacePanel.d.ts +7 -0
- package/dist/clickup/common/WorkspacePanel.js +7 -0
- package/dist/clickup/common/WorkspacePanel.js.map +1 -0
- package/dist/clickup/common/WorkspaceSelect.d.ts +5 -0
- package/dist/clickup/common/WorkspaceSelect.js +64 -0
- package/dist/clickup/common/WorkspaceSelect.js.map +1 -0
- package/dist/clickup/common/WorkspaceTable.d.ts +16 -0
- package/dist/clickup/common/WorkspaceTable.js +7 -0
- package/dist/clickup/common/WorkspaceTable.js.map +1 -0
- package/dist/clickup/dialogs/ClickUpCommentComposer.d.ts +9 -0
- package/dist/clickup/dialogs/ClickUpCommentComposer.js +35 -0
- package/dist/clickup/dialogs/ClickUpCommentComposer.js.map +1 -0
- package/dist/clickup/dialogs/ClickUpTaskActions.d.ts +8 -0
- package/dist/clickup/dialogs/ClickUpTaskActions.js +10 -0
- package/dist/clickup/dialogs/ClickUpTaskActions.js.map +1 -0
- package/dist/clickup/dialogs/ClickUpTaskAssignee.d.ts +7 -0
- package/dist/clickup/dialogs/ClickUpTaskAssignee.js +12 -0
- package/dist/clickup/dialogs/ClickUpTaskAssignee.js.map +1 -0
- package/dist/clickup/dialogs/ClickUpTaskDescription.d.ts +12 -0
- package/dist/clickup/dialogs/ClickUpTaskDescription.js +12 -0
- package/dist/clickup/dialogs/ClickUpTaskDescription.js.map +1 -0
- package/dist/clickup/dialogs/ClickUpTaskDialog.d.ts +27 -0
- package/dist/clickup/dialogs/ClickUpTaskDialog.js +35 -0
- package/dist/clickup/dialogs/ClickUpTaskDialog.js.map +1 -0
- package/dist/clickup/dialogs/ClickUpTaskDiscussion.d.ts +11 -0
- package/dist/clickup/dialogs/ClickUpTaskDiscussion.js +29 -0
- package/dist/clickup/dialogs/ClickUpTaskDiscussion.js.map +1 -0
- package/dist/clickup/dialogs/ClickUpTaskMain.d.ts +24 -0
- package/dist/clickup/dialogs/ClickUpTaskMain.js +26 -0
- package/dist/clickup/dialogs/ClickUpTaskMain.js.map +1 -0
- package/dist/clickup/dialogs/ClickUpTaskProperties.d.ts +17 -0
- package/dist/clickup/dialogs/ClickUpTaskProperties.js +26 -0
- package/dist/clickup/dialogs/ClickUpTaskProperties.js.map +1 -0
- package/dist/clickup/elements/TaskCalendarCell.d.ts +14 -0
- package/dist/clickup/elements/TaskCalendarCell.js +19 -0
- package/dist/clickup/elements/TaskCalendarCell.js.map +1 -0
- package/dist/clickup/elements/TaskCard.d.ts +16 -0
- package/dist/clickup/elements/TaskCard.js +51 -0
- package/dist/clickup/elements/TaskCard.js.map +1 -0
- package/dist/clickup/elements/TaskGroup.d.ts +24 -0
- package/dist/clickup/elements/TaskGroup.js +50 -0
- package/dist/clickup/elements/TaskGroup.js.map +1 -0
- package/dist/clickup/elements/TaskRow.d.ts +19 -0
- package/dist/clickup/elements/TaskRow.js +60 -0
- package/dist/clickup/elements/TaskRow.js.map +1 -0
- package/dist/clickup/elements/TaskTableHead.d.ts +1 -0
- package/dist/clickup/elements/TaskTableHead.js +15 -0
- package/dist/clickup/elements/TaskTableHead.js.map +1 -0
- package/dist/clickup/elements/TaskTimelineRow.d.ts +12 -0
- package/dist/clickup/elements/TaskTimelineRow.js +16 -0
- package/dist/clickup/elements/TaskTimelineRow.js.map +1 -0
- package/dist/clickup/index.d.ts +41 -0
- package/dist/clickup/index.js +48 -0
- package/dist/clickup/index.js.map +1 -0
- package/dist/clickup/task-ui.css +864 -0
- package/dist/clickup/toolbar/TaskToolbar.d.ts +20 -0
- package/dist/clickup/toolbar/TaskToolbar.js +16 -0
- package/dist/clickup/toolbar/TaskToolbar.js.map +1 -0
- package/dist/clickup/toolbar/TaskViewPicker.d.ts +8 -0
- package/dist/clickup/toolbar/TaskViewPicker.js +48 -0
- package/dist/clickup/toolbar/TaskViewPicker.js.map +1 -0
- package/dist/clickup/toolbar/TaskViewSwitcher.d.ts +21 -0
- package/dist/clickup/toolbar/TaskViewSwitcher.js +55 -0
- package/dist/clickup/toolbar/TaskViewSwitcher.js.map +1 -0
- package/dist/clickup/types.d.ts +66 -0
- package/dist/clickup/types.js +2 -0
- package/dist/clickup/types.js.map +1 -0
- package/dist/clickup/views/TaskBoardView.d.ts +21 -0
- package/dist/clickup/views/TaskBoardView.js +75 -0
- package/dist/clickup/views/TaskBoardView.js.map +1 -0
- package/dist/clickup/views/TaskCalendarView.d.ts +12 -0
- package/dist/clickup/views/TaskCalendarView.js +197 -0
- package/dist/clickup/views/TaskCalendarView.js.map +1 -0
- package/dist/clickup/views/TaskGanttView.d.ts +12 -0
- package/dist/clickup/views/TaskGanttView.js +64 -0
- package/dist/clickup/views/TaskGanttView.js.map +1 -0
- package/dist/clickup/views/TaskListView.d.ts +22 -0
- package/dist/clickup/views/TaskListView.js +17 -0
- package/dist/clickup/views/TaskListView.js.map +1 -0
- package/dist/clickup/views/TaskTableView.d.ts +21 -0
- package/dist/clickup/views/TaskTableView.js +50 -0
- package/dist/clickup/views/TaskTableView.js.map +1 -0
- package/dist/components/ActivityFeed.d.ts +48 -0
- package/dist/components/ActivityFeed.js +60 -0
- package/dist/components/ActivityFeed.js.map +1 -0
- package/dist/components/AudioPlayer.d.ts +8 -0
- package/dist/components/AudioPlayer.js +96 -0
- package/dist/components/AudioPlayer.js.map +1 -0
- package/dist/components/BulkActionBar.d.ts +10 -0
- package/dist/components/BulkActionBar.js +10 -0
- package/dist/components/BulkActionBar.js.map +1 -0
- package/dist/components/Carousel.d.ts +8 -0
- package/dist/components/Carousel.js +38 -0
- package/dist/components/Carousel.js.map +1 -0
- package/dist/components/ChatBot.d.ts +6 -0
- package/dist/components/ChatBot.js +52 -0
- package/dist/components/ChatBot.js.map +1 -0
- package/dist/components/CheckboxCustom.d.ts +9 -0
- package/dist/components/CheckboxCustom.js +42 -0
- package/dist/components/CheckboxCustom.js.map +1 -0
- package/dist/components/ClickUpTaskModal.d.ts +36 -0
- package/dist/components/ClickUpTaskModal.js +180 -0
- package/dist/components/ClickUpTaskModal.js.map +1 -0
- package/dist/components/ConditionBuilder.d.ts +28 -0
- package/dist/components/ConditionBuilder.js +63 -0
- package/dist/components/ConditionBuilder.js.map +1 -0
- package/dist/components/ConfirmDialog.d.ts +21 -0
- package/dist/components/ConfirmDialog.js +51 -0
- package/dist/components/ConfirmDialog.js.map +1 -0
- package/dist/components/DataCard.d.ts +43 -0
- package/dist/components/DataCard.js +30 -0
- package/dist/components/DataCard.js.map +1 -0
- package/dist/components/DataTable.d.ts +107 -0
- package/dist/components/DataTable.js +153 -0
- package/dist/components/DataTable.js.map +1 -0
- package/dist/components/DatePicker.d.ts +16 -0
- package/dist/components/DatePicker.js +184 -0
- package/dist/components/DatePicker.js.map +1 -0
- package/dist/components/EmptyState.d.ts +26 -0
- package/dist/components/EmptyState.js +37 -0
- package/dist/components/EmptyState.js.map +1 -0
- package/dist/components/Error.d.ts +12 -0
- package/dist/components/Error.js +41 -0
- package/dist/components/Error.js.map +1 -0
- package/dist/components/ErrorState.d.ts +10 -0
- package/dist/components/ErrorState.js +53 -0
- package/dist/components/ErrorState.js.map +1 -0
- package/dist/components/FileAttachmentChip.d.ts +10 -0
- package/dist/components/FileAttachmentChip.js +21 -0
- package/dist/components/FileAttachmentChip.js.map +1 -0
- package/dist/components/FilterConditionChip.d.ts +10 -0
- package/dist/components/FilterConditionChip.js +11 -0
- package/dist/components/FilterConditionChip.js.map +1 -0
- package/dist/components/GalleryCarouselDialog.d.ts +14 -0
- package/dist/components/GalleryCarouselDialog.js +167 -0
- package/dist/components/GalleryCarouselDialog.js.map +1 -0
- package/dist/components/HierarchicalSelectionMenu.d.ts +21 -0
- package/dist/components/HierarchicalSelectionMenu.js +168 -0
- package/dist/components/HierarchicalSelectionMenu.js.map +1 -0
- package/dist/components/InfiniteSelect.d.ts +44 -0
- package/dist/components/InfiniteSelect.js +121 -0
- package/dist/components/InfiniteSelect.js.map +1 -0
- package/dist/components/LoadingState.d.ts +28 -0
- package/dist/components/LoadingState.js +24 -0
- package/dist/components/LoadingState.js.map +1 -0
- package/dist/components/LucidIconRender.d.ts +9 -0
- package/dist/components/LucidIconRender.js +7 -0
- package/dist/components/LucidIconRender.js.map +1 -0
- package/dist/components/MasterDetailLayout.d.ts +67 -0
- package/dist/components/MasterDetailLayout.js +79 -0
- package/dist/components/MasterDetailLayout.js.map +1 -0
- package/dist/components/PinnedAttributeRow.d.ts +12 -0
- package/dist/components/PinnedAttributeRow.js +11 -0
- package/dist/components/PinnedAttributeRow.js.map +1 -0
- package/dist/components/PopUp.d.ts +11 -0
- package/dist/components/PopUp.js +83 -0
- package/dist/components/PopUp.js.map +1 -0
- package/dist/components/PrioritySignal.d.ts +10 -0
- package/dist/components/PrioritySignal.js +54 -0
- package/dist/components/PrioritySignal.js.map +1 -0
- package/dist/components/RichTextEditor.d.ts +7 -0
- package/dist/components/RichTextEditor.js +252 -0
- package/dist/components/RichTextEditor.js.map +1 -0
- package/dist/components/SLACountdown.d.ts +15 -0
- package/dist/components/SLACountdown.js +26 -0
- package/dist/components/SLACountdown.js.map +1 -0
- package/dist/components/StatusBadge.d.ts +14 -0
- package/dist/components/StatusBadge.js +55 -0
- package/dist/components/StatusBadge.js.map +1 -0
- package/dist/components/StatusCards.d.ts +12 -0
- package/dist/components/StatusCards.js +12 -0
- package/dist/components/StatusCards.js.map +1 -0
- package/dist/components/StatusProgressBar.d.ts +18 -0
- package/dist/components/StatusProgressBar.js +50 -0
- package/dist/components/StatusProgressBar.js.map +1 -0
- package/dist/components/TableActions.d.ts +26 -0
- package/dist/components/TableActions.js +49 -0
- package/dist/components/TableActions.js.map +1 -0
- package/dist/components/TaskDetailsModal.d.ts +3 -0
- package/dist/components/TaskDetailsModal.js +8 -0
- package/dist/components/TaskDetailsModal.js.map +1 -0
- package/dist/components/ThemedText.d.ts +24 -0
- package/dist/components/ThemedText.js +103 -0
- package/dist/components/ThemedText.js.map +1 -0
- package/dist/components/TicketWorkspaceLayout.d.ts +11 -0
- package/dist/components/TicketWorkspaceLayout.js +7 -0
- package/dist/components/TicketWorkspaceLayout.js.map +1 -0
- package/dist/components/TimePicker.d.ts +15 -0
- package/dist/components/TimePicker.js +96 -0
- package/dist/components/TimePicker.js.map +1 -0
- package/dist/components/Tooltip.d.ts +19 -0
- package/dist/components/Tooltip.js +75 -0
- package/dist/components/Tooltip.js.map +1 -0
- package/dist/components/TreeView.d.ts +33 -0
- package/dist/components/TreeView.js +55 -0
- package/dist/components/TreeView.js.map +1 -0
- package/dist/components/accordion.d.ts +6 -0
- package/dist/components/accordion.js +18 -0
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/avatar.d.ts +11 -0
- package/dist/components/avatar.js +23 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/badge.d.ts +12 -0
- package/dist/components/badge.js +44 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/button.d.ts +15 -0
- package/dist/components/button.js +47 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/card.d.ts +11 -0
- package/dist/components/card.js +25 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/context menu core/context-menu.d.ts +28 -0
- package/dist/components/context menu core/context-menu.js +91 -0
- package/dist/components/context menu core/context-menu.js.map +1 -0
- package/dist/components/context menu core/contextMenuAdvanced.d.ts +46 -0
- package/dist/components/context menu core/contextMenuAdvanced.js +34 -0
- package/dist/components/context menu core/contextMenuAdvanced.js.map +1 -0
- package/dist/components/dialog.d.ts +18 -0
- package/dist/components/dialog.js +42 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/dropdown-menu.d.ts +29 -0
- package/dist/components/dropdown-menu.js +51 -0
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/filter/AdvancedFilters.d.ts +14 -0
- package/dist/components/filter/AdvancedFilters.js +220 -0
- package/dist/components/filter/AdvancedFilters.js.map +1 -0
- package/dist/components/filter/Filter.d.ts +48 -0
- package/dist/components/filter/Filter.js +153 -0
- package/dist/components/filter/Filter.js.map +1 -0
- package/dist/components/filter/FilterButton.d.ts +10 -0
- package/dist/components/filter/FilterButton.js +9 -0
- package/dist/components/filter/FilterButton.js.map +1 -0
- package/dist/components/filter/NormalFilters.d.ts +14 -0
- package/dist/components/filter/NormalFilters.js +40 -0
- package/dist/components/filter/NormalFilters.js.map +1 -0
- package/dist/components/filter/index.d.ts +5 -0
- package/dist/components/filter/index.js +6 -0
- package/dist/components/filter/index.js.map +1 -0
- package/dist/components/filter/types.d.ts +32 -0
- package/dist/components/filter/types.js +2 -0
- package/dist/components/filter/types.js.map +1 -0
- package/dist/components/form-error.d.ts +42 -0
- package/dist/components/form-error.js +103 -0
- package/dist/components/form-error.js.map +1 -0
- package/dist/components/icons.d.ts +19 -0
- package/dist/components/icons.js +21 -0
- package/dist/components/icons.js.map +1 -0
- package/dist/components/image.d.ts +12 -0
- package/dist/components/image.js +18 -0
- package/dist/components/image.js.map +1 -0
- package/dist/components/index.d.ts +59 -0
- package/dist/components/index.js +60 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/input.d.ts +22 -0
- package/dist/components/input.js +102 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/label.d.ts +7 -0
- package/dist/components/label.js +8 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/layout/FeatureLayout.d.ts +131 -0
- package/dist/components/layout/FeatureLayout.js +113 -0
- package/dist/components/layout/FeatureLayout.js.map +1 -0
- package/dist/components/layout/FeatureLayoutExportButton.d.ts +10 -0
- package/dist/components/layout/FeatureLayoutExportButton.js +21 -0
- package/dist/components/layout/FeatureLayoutExportButton.js.map +1 -0
- package/dist/components/layout/FeatureLayoutTabs.d.ts +36 -0
- package/dist/components/layout/FeatureLayoutTabs.js +192 -0
- package/dist/components/layout/FeatureLayoutTabs.js.map +1 -0
- package/dist/components/layout/kanban/FeatureLayoutKanban.d.ts +6 -0
- package/dist/components/layout/kanban/FeatureLayoutKanban.js +195 -0
- package/dist/components/layout/kanban/FeatureLayoutKanban.js.map +1 -0
- package/dist/components/layout/kanban/KanbanCard.d.ts +12 -0
- package/dist/components/layout/kanban/KanbanCard.js +43 -0
- package/dist/components/layout/kanban/KanbanCard.js.map +1 -0
- package/dist/components/layout/kanban/KanbanColumn.d.ts +23 -0
- package/dist/components/layout/kanban/KanbanColumn.js +30 -0
- package/dist/components/layout/kanban/KanbanColumn.js.map +1 -0
- package/dist/components/layout/kanban/KanbanToolbar.d.ts +11 -0
- package/dist/components/layout/kanban/KanbanToolbar.js +10 -0
- package/dist/components/layout/kanban/KanbanToolbar.js.map +1 -0
- package/dist/components/layout/kanban/index.d.ts +6 -0
- package/dist/components/layout/kanban/index.js +7 -0
- package/dist/components/layout/kanban/index.js.map +1 -0
- package/dist/components/layout/kanban/types.d.ts +67 -0
- package/dist/components/layout/kanban/types.js +2 -0
- package/dist/components/layout/kanban/types.js.map +1 -0
- package/dist/components/popover.d.ts +11 -0
- package/dist/components/popover.js +20 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/react-flow/FlowGraphHeader.d.ts +2 -0
- package/dist/components/react-flow/FlowGraphHeader.js +10 -0
- package/dist/components/react-flow/FlowGraphHeader.js.map +1 -0
- package/dist/components/react-flow/GlowEdge.d.ts +3 -0
- package/dist/components/react-flow/GlowEdge.js +100 -0
- package/dist/components/react-flow/GlowEdge.js.map +1 -0
- package/dist/components/react-flow/ReactFlowCanvas.d.ts +7 -0
- package/dist/components/react-flow/ReactFlowCanvas.js +44 -0
- package/dist/components/react-flow/ReactFlowCanvas.js.map +1 -0
- package/dist/components/react-flow/RelationshipFlow.d.ts +2 -0
- package/dist/components/react-flow/RelationshipFlow.js +9 -0
- package/dist/components/react-flow/RelationshipFlow.js.map +1 -0
- package/dist/components/react-flow/TreeFlowLayout.d.ts +29 -0
- package/dist/components/react-flow/TreeFlowLayout.js +14 -0
- package/dist/components/react-flow/TreeFlowLayout.js.map +1 -0
- package/dist/components/react-flow/edges.d.ts +8 -0
- package/dist/components/react-flow/edges.js +21 -0
- package/dist/components/react-flow/edges.js.map +1 -0
- package/dist/components/react-flow/index.d.ts +9 -0
- package/dist/components/react-flow/index.js +10 -0
- package/dist/components/react-flow/index.js.map +1 -0
- package/dist/components/react-flow/layout.d.ts +5 -0
- package/dist/components/react-flow/layout.js +11 -0
- package/dist/components/react-flow/layout.js.map +1 -0
- package/dist/components/react-flow/types.d.ts +82 -0
- package/dist/components/react-flow/types.js +6 -0
- package/dist/components/react-flow/types.js.map +1 -0
- package/dist/components/react-flow/useFlowGraph.d.ts +3 -0
- package/dist/components/react-flow/useFlowGraph.js +22 -0
- package/dist/components/react-flow/useFlowGraph.js.map +1 -0
- package/dist/components/react-flow/useFlowGraphSync.d.ts +4 -0
- package/dist/components/react-flow/useFlowGraphSync.js +43 -0
- package/dist/components/react-flow/useFlowGraphSync.js.map +1 -0
- package/dist/components/select.d.ts +23 -0
- package/dist/components/select.js +109 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/sonner.d.ts +4 -0
- package/dist/components/sonner.js +29 -0
- package/dist/components/sonner.js.map +1 -0
- package/dist/components/stepper.d.ts +12 -0
- package/dist/components/stepper.js +22 -0
- package/dist/components/stepper.js.map +1 -0
- package/dist/components/switch.d.ts +5 -0
- package/dist/components/switch.js +16 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table.d.ts +52 -0
- package/dist/components/table.js +112 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabs.d.ts +10 -0
- package/dist/components/tabs.js +29 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/textarea.d.ts +6 -0
- package/dist/components/textarea.js +17 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/condition-builder/index.d.ts +2 -0
- package/dist/condition-builder/index.js +3 -0
- package/dist/condition-builder/index.js.map +1 -0
- package/dist/context-menu/index.d.ts +2 -0
- package/dist/context-menu/index.js +3 -0
- package/dist/context-menu/index.js.map +1 -0
- package/dist/dropdown/SearchDropdown.d.ts +19 -0
- package/dist/dropdown/SearchDropdown.js +27 -0
- package/dist/dropdown/SearchDropdown.js.map +1 -0
- package/dist/dropdown/index.d.ts +2 -0
- package/dist/dropdown/index.js +3 -0
- package/dist/dropdown/index.js.map +1 -0
- package/dist/editor.d.ts +1 -0
- package/dist/editor.js +2 -0
- package/dist/editor.js.map +1 -0
- package/dist/feedback/index.d.ts +6 -0
- package/dist/feedback/index.js +7 -0
- package/dist/feedback/index.js.map +1 -0
- package/dist/flow.d.ts +1 -0
- package/dist/flow.js +2 -0
- package/dist/flow.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.js +4 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useContextMenuActions.d.ts +16 -0
- package/dist/hooks/useContextMenuActions.js +35 -0
- package/dist/hooks/useContextMenuActions.js.map +1 -0
- package/dist/hooks/useFeatureLayout.d.ts +14 -0
- package/dist/hooks/useFeatureLayout.js +21 -0
- package/dist/hooks/useFeatureLayout.js.map +1 -0
- package/dist/hooks/useTableActions.d.ts +46 -0
- package/dist/hooks/useTableActions.js +71 -0
- package/dist/hooks/useTableActions.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations.d.ts +42 -0
- package/dist/integrations.js +9 -0
- package/dist/integrations.js.map +1 -0
- package/dist/itsm/index.d.ts +7 -0
- package/dist/itsm/index.js +8 -0
- package/dist/itsm/index.js.map +1 -0
- package/dist/locales/ar.json +149 -0
- package/dist/locales/en.json +149 -0
- package/dist/primitives/index.d.ts +11 -0
- package/dist/primitives/index.js +12 -0
- package/dist/primitives/index.js.map +1 -0
- package/dist/progress.d.ts +7 -0
- package/dist/progress.js +20 -0
- package/dist/progress.js.map +1 -0
- package/dist/select/index.d.ts +3 -0
- package/dist/select/index.js +4 -0
- package/dist/select/index.js.map +1 -0
- package/dist/styles.css +2 -0
- package/dist/support/api.d.ts +8 -0
- package/dist/support/api.js +2 -0
- package/dist/support/api.js.map +1 -0
- package/dist/support/types/file.types.d.ts +12 -0
- package/dist/support/types/file.types.js +2 -0
- package/dist/support/types/file.types.js.map +1 -0
- package/dist/support/types/gallery.types.d.ts +22 -0
- package/dist/support/types/gallery.types.js +2 -0
- package/dist/support/types/gallery.types.js.map +1 -0
- package/dist/support/types/governorates.types.d.ts +12 -0
- package/dist/support/types/governorates.types.js +2 -0
- package/dist/support/types/governorates.types.js.map +1 -0
- package/dist/support/types/grade.types.d.ts +7 -0
- package/dist/support/types/grade.types.js +2 -0
- package/dist/support/types/grade.types.js.map +1 -0
- package/dist/support/types/index.d.ts +13 -0
- package/dist/support/types/index.js +14 -0
- package/dist/support/types/index.js.map +1 -0
- package/dist/support/types/metadata.types.d.ts +61 -0
- package/dist/support/types/metadata.types.js +3 -0
- package/dist/support/types/metadata.types.js.map +1 -0
- package/dist/support/types/table.types.d.ts +33 -0
- package/dist/support/types/table.types.js +2 -0
- package/dist/support/types/table.types.js.map +1 -0
- package/dist/support/types/viewCard.types.d.ts +78 -0
- package/dist/support/types/viewCard.types.js +3 -0
- package/dist/support/types/viewCard.types.js.map +1 -0
- package/dist/support/utils/fileUtils.d.ts +1 -0
- package/dist/support/utils/fileUtils.js +2 -0
- package/dist/support/utils/fileUtils.js.map +1 -0
- package/dist/support/utils.d.ts +5 -0
- package/dist/support/utils.js +4 -0
- package/dist/support/utils.js.map +1 -0
- package/dist/table/index.d.ts +6 -0
- package/dist/table/index.js +7 -0
- package/dist/table/index.js.map +1 -0
- package/dist/tasks.d.ts +3 -0
- package/dist/tasks.js +4 -0
- package/dist/tasks.js.map +1 -0
- package/dist/tours/TourContext.d.ts +33 -0
- package/dist/tours/TourContext.js +98 -0
- package/dist/tours/TourContext.js.map +1 -0
- package/dist/tours/TourOverlay.d.ts +7 -0
- package/dist/tours/TourOverlay.js +129 -0
- package/dist/tours/TourOverlay.js.map +1 -0
- package/dist/tours.d.ts +2 -0
- package/dist/tours.js +3 -0
- package/dist/tours.js.map +1 -0
- package/dist/types.d.ts +91 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/dist/typography/index.d.ts +4 -0
- package/dist/typography/index.js +5 -0
- package/dist/typography/index.js.map +1 -0
- package/dist/typography/typography.adapter.d.ts +18 -0
- package/dist/typography/typography.adapter.js +113 -0
- package/dist/typography/typography.adapter.js.map +1 -0
- package/dist/typography/typography.constants.d.ts +56 -0
- package/dist/typography/typography.constants.js +649 -0
- package/dist/typography/typography.constants.js.map +1 -0
- package/dist/typography/typography.types.d.ts +62 -0
- package/dist/typography/typography.types.js +6 -0
- package/dist/typography/typography.types.js.map +1 -0
- package/dist/typography/useTypography.d.ts +25 -0
- package/dist/typography/useTypography.js +158 -0
- package/dist/typography/useTypography.js.map +1 -0
- package/dist/ui/accordion.d.ts +7 -0
- package/dist/ui/accordion.js +18 -0
- package/dist/ui/accordion.js.map +1 -0
- package/dist/ui/avatar.d.ts +11 -0
- package/dist/ui/avatar.js +23 -0
- package/dist/ui/avatar.js.map +1 -0
- package/dist/ui/badge.d.ts +10 -0
- package/dist/ui/badge.js +33 -0
- package/dist/ui/badge.js.map +1 -0
- package/dist/ui/button.d.ts +11 -0
- package/dist/ui/button.js +41 -0
- package/dist/ui/button.js.map +1 -0
- package/dist/ui/card.d.ts +9 -0
- package/dist/ui/card.js +25 -0
- package/dist/ui/card.js.map +1 -0
- package/dist/ui/dialog.d.ts +17 -0
- package/dist/ui/dialog.js +37 -0
- package/dist/ui/dialog.js.map +1 -0
- package/dist/ui/dropdown-menu.d.ts +25 -0
- package/dist/ui/dropdown-menu.js +51 -0
- package/dist/ui/dropdown-menu.js.map +1 -0
- package/dist/ui/index.d.ts +15 -0
- package/dist/ui/index.js +16 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/input.d.ts +3 -0
- package/dist/ui/input.js +7 -0
- package/dist/ui/input.js.map +1 -0
- package/dist/ui/popover.d.ts +10 -0
- package/dist/ui/popover.js +26 -0
- package/dist/ui/popover.js.map +1 -0
- package/dist/ui/select.d.ts +15 -0
- package/dist/ui/select.js +38 -0
- package/dist/ui/select.js.map +1 -0
- package/dist/ui/switch.d.ts +6 -0
- package/dist/ui/switch.js +8 -0
- package/dist/ui/switch.js.map +1 -0
- package/dist/ui/table.d.ts +10 -0
- package/dist/ui/table.js +28 -0
- package/dist/ui/table.js.map +1 -0
- package/dist/ui/tabs.d.ts +11 -0
- package/dist/ui/tabs.js +29 -0
- package/dist/ui/tabs.js.map +1 -0
- package/dist/ui/textarea.d.ts +3 -0
- package/dist/ui/textarea.js +7 -0
- package/dist/ui/textarea.js.map +1 -0
- package/dist/ui/tooltip.d.ts +7 -0
- package/dist/ui/tooltip.js +17 -0
- package/dist/ui/tooltip.js.map +1 -0
- package/dist/workspace/index.d.ts +2 -0
- package/dist/workspace/index.js +3 -0
- package/dist/workspace/index.js.map +1 -0
- package/package.json +61 -4
- package/src/activity/index.ts +2 -0
- package/src/clickup/common/InlineNameTab.tsx +122 -0
- package/src/clickup/common/TaskAssigneeAvatar.tsx +127 -0
- package/src/clickup/common/TaskBreadcrumb.tsx +91 -0
- package/src/clickup/common/TaskCheck.tsx +51 -0
- package/src/clickup/common/TaskContextMenu.tsx +42 -0
- package/src/clickup/common/TaskIcon.tsx +145 -0
- package/src/clickup/common/TaskPriorityBadge.tsx +52 -0
- package/src/clickup/common/TaskRowActionMenu.tsx +43 -0
- package/src/clickup/common/TaskStatusPill.tsx +73 -0
- package/src/clickup/common/WorkspaceButton.tsx +22 -0
- package/src/clickup/common/WorkspaceHeader.tsx +41 -0
- package/src/clickup/common/WorkspaceMenus.tsx +92 -0
- package/src/clickup/common/WorkspaceMessage.tsx +39 -0
- package/src/clickup/common/WorkspaceMetricStrip.tsx +49 -0
- package/src/clickup/common/WorkspacePanel.tsx +27 -0
- package/src/clickup/common/WorkspaceSelect.tsx +173 -0
- package/src/clickup/common/WorkspaceTable.tsx +78 -0
- package/src/clickup/dialogs/ClickUpCommentComposer.tsx +93 -0
- package/src/clickup/dialogs/ClickUpTaskActions.tsx +73 -0
- package/src/clickup/dialogs/ClickUpTaskAssignee.tsx +86 -0
- package/src/clickup/dialogs/ClickUpTaskDescription.tsx +67 -0
- package/src/clickup/dialogs/ClickUpTaskDialog.tsx +187 -0
- package/src/clickup/dialogs/ClickUpTaskDiscussion.tsx +136 -0
- package/src/clickup/dialogs/ClickUpTaskMain.tsx +156 -0
- package/src/clickup/dialogs/ClickUpTaskProperties.tsx +214 -0
- package/src/clickup/elements/TaskCalendarCell.tsx +91 -0
- package/src/clickup/elements/TaskCard.tsx +154 -0
- package/src/clickup/elements/TaskGroup.tsx +208 -0
- package/src/clickup/elements/TaskRow.tsx +172 -0
- package/src/clickup/elements/TaskTableHead.tsx +29 -0
- package/src/clickup/elements/TaskTimelineRow.tsx +77 -0
- package/src/clickup/index.ts +63 -0
- package/src/clickup/task-ui.css +864 -0
- package/src/clickup/toolbar/TaskToolbar.tsx +130 -0
- package/src/clickup/toolbar/TaskViewPicker.tsx +148 -0
- package/src/clickup/toolbar/TaskViewSwitcher.tsx +129 -0
- package/src/clickup/types.ts +79 -0
- package/src/clickup/views/TaskBoardView.tsx +259 -0
- package/src/clickup/views/TaskCalendarView.tsx +410 -0
- package/src/clickup/views/TaskGanttView.tsx +178 -0
- package/src/clickup/views/TaskListView.tsx +95 -0
- package/src/clickup/views/TaskTableView.tsx +192 -0
- package/src/components/ActivityFeed.tsx +440 -0
- package/src/components/AudioPlayer.tsx +179 -0
- package/src/components/BulkActionBar.tsx +72 -0
- package/src/components/Carousel.tsx +107 -0
- package/src/components/ChatBot.tsx +205 -0
- package/src/components/CheckboxCustom.tsx +106 -0
- package/src/components/ClickUpTaskModal.tsx +661 -0
- package/src/components/ConditionBuilder.tsx +322 -0
- package/src/components/ConfirmDialog.tsx +157 -0
- package/src/components/DataCard.tsx +203 -0
- package/src/components/DataTable.tsx +609 -0
- package/src/components/DatePicker.tsx +397 -0
- package/src/components/EmptyState.tsx +105 -0
- package/src/components/Error.tsx +248 -0
- package/src/components/ErrorState.tsx +199 -0
- package/src/components/FileAttachmentChip.tsx +84 -0
- package/src/components/FilterConditionChip.tsx +56 -0
- package/src/components/GalleryCarouselDialog.tsx +439 -0
- package/src/components/HierarchicalSelectionMenu.tsx +432 -0
- package/src/components/InfiniteSelect.tsx +397 -0
- package/src/components/LoadingState.tsx +105 -0
- package/src/components/LucidIconRender.tsx +25 -0
- package/src/components/MasterDetailLayout.tsx +442 -0
- package/src/components/PinnedAttributeRow.tsx +70 -0
- package/src/components/PopUp.tsx +309 -0
- package/src/components/PrioritySignal.tsx +131 -0
- package/src/components/RichTextEditor.tsx +433 -0
- package/src/components/SLACountdown.tsx +133 -0
- package/src/components/StatusBadge.tsx +119 -0
- package/src/components/StatusCards.tsx +78 -0
- package/src/components/StatusProgressBar.tsx +158 -0
- package/src/components/TableActions.tsx +182 -0
- package/src/components/TaskDetailsModal.tsx +7 -0
- package/src/components/ThemedText.tsx +181 -0
- package/src/components/TicketWorkspaceLayout.tsx +63 -0
- package/src/components/TimePicker.tsx +283 -0
- package/src/components/Tooltip.tsx +128 -0
- package/src/components/TreeView.tsx +297 -0
- package/src/components/accordion.tsx +78 -0
- package/src/components/avatar.tsx +107 -0
- package/src/components/badge.tsx +72 -0
- package/src/components/button.tsx +93 -0
- package/src/components/card.tsx +103 -0
- package/src/components/context menu core/context-menu.tsx +304 -0
- package/src/components/context menu core/contextMenuAdvanced.tsx +130 -0
- package/src/components/dialog.tsx +186 -0
- package/src/components/dropdown-menu.tsx +274 -0
- package/src/components/filter/AdvancedFilters.tsx +834 -0
- package/src/components/filter/Filter.tsx +233 -0
- package/src/components/filter/FilterButton.tsx +38 -0
- package/src/components/filter/NormalFilters.tsx +109 -0
- package/src/components/filter/index.ts +5 -0
- package/src/components/filter/types.ts +36 -0
- package/src/components/form-error.tsx +172 -0
- package/src/components/icons.tsx +468 -0
- package/src/components/image.tsx +85 -0
- package/src/components/index.ts +59 -0
- package/src/components/input.tsx +260 -0
- package/src/components/label.tsx +27 -0
- package/src/components/layout/FeatureLayout.tsx +739 -0
- package/src/components/layout/FeatureLayoutExportButton.tsx +93 -0
- package/src/components/layout/FeatureLayoutTabs.tsx +413 -0
- package/src/components/layout/kanban/FeatureLayoutKanban.tsx +386 -0
- package/src/components/layout/kanban/KanbanCard.tsx +132 -0
- package/src/components/layout/kanban/KanbanColumn.tsx +241 -0
- package/src/components/layout/kanban/KanbanToolbar.tsx +77 -0
- package/src/components/layout/kanban/index.ts +6 -0
- package/src/components/layout/kanban/types.ts +96 -0
- package/src/components/popover.tsx +66 -0
- package/src/components/react-flow/FlowGraphHeader.tsx +68 -0
- package/src/components/react-flow/GlowEdge.tsx +238 -0
- package/src/components/react-flow/ReactFlowCanvas.tsx +112 -0
- package/src/components/react-flow/RelationshipFlow.tsx +50 -0
- package/src/components/react-flow/TreeFlowLayout.tsx +187 -0
- package/src/components/react-flow/edges.ts +39 -0
- package/src/components/react-flow/index.ts +9 -0
- package/src/components/react-flow/layout.ts +16 -0
- package/src/components/react-flow/types.ts +103 -0
- package/src/components/react-flow/useFlowGraph.ts +36 -0
- package/src/components/react-flow/useFlowGraphSync.ts +67 -0
- package/src/components/select.tsx +386 -0
- package/src/components/sonner.tsx +58 -0
- package/src/components/stepper.tsx +97 -0
- package/src/components/switch.tsx +46 -0
- package/src/components/table.tsx +577 -0
- package/src/components/tabs.tsx +81 -0
- package/src/components/textarea.tsx +67 -0
- package/src/condition-builder/index.ts +2 -0
- package/src/context-menu/index.ts +2 -0
- package/src/dropdown/SearchDropdown.tsx +145 -0
- package/src/dropdown/index.ts +2 -0
- package/src/editor.ts +1 -0
- package/src/feedback/index.ts +6 -0
- package/src/flow.ts +1 -0
- package/src/hooks/index.ts +3 -0
- package/src/hooks/useContextMenuActions.ts +69 -0
- package/src/hooks/useFeatureLayout.ts +44 -0
- package/src/hooks/useTableActions.ts +146 -0
- package/src/index.ts +27 -0
- package/src/integrations.tsx +11 -0
- package/src/itsm/index.ts +7 -0
- package/src/locales/ar.json +149 -0
- package/src/locales/en.json +149 -0
- package/src/primitives/index.ts +11 -0
- package/src/progress.tsx +87 -0
- package/src/select/index.ts +3 -0
- package/src/support/api.ts +1 -0
- package/src/support/types/file.types.ts +13 -0
- package/src/support/types/gallery.types.ts +22 -0
- package/src/support/types/governorates.types.ts +13 -0
- package/src/support/types/grade.types.ts +7 -0
- package/src/support/types/index.ts +14 -0
- package/src/support/types/metadata.types.ts +93 -0
- package/src/support/types/table.types.ts +45 -0
- package/src/support/types/viewCard.types.ts +100 -0
- package/src/support/utils/fileUtils.ts +1 -0
- package/src/support/utils.ts +3 -0
- package/src/table/index.ts +6 -0
- package/src/tasks.ts +3 -0
- package/src/tours/TourContext.tsx +142 -0
- package/src/tours/TourOverlay.tsx +281 -0
- package/src/tours.ts +2 -0
- package/src/types.ts +138 -0
- package/src/typography/index.ts +4 -0
- package/src/typography/typography.adapter.ts +131 -0
- package/src/typography/typography.constants.ts +700 -0
- package/src/typography/typography.types.ts +156 -0
- package/src/typography/useTypography.ts +211 -0
- package/src/ui/accordion.tsx +66 -0
- package/src/ui/avatar.tsx +106 -0
- package/src/ui/badge.tsx +58 -0
- package/src/ui/button.tsx +69 -0
- package/src/ui/card.tsx +97 -0
- package/src/ui/dialog.tsx +165 -0
- package/src/ui/dropdown-menu.tsx +262 -0
- package/src/ui/index.ts +15 -0
- package/src/ui/input.tsx +22 -0
- package/src/ui/popover.tsx +86 -0
- package/src/ui/select.tsx +193 -0
- package/src/ui/switch.tsx +32 -0
- package/src/ui/table.tsx +119 -0
- package/src/ui/tabs.tsx +89 -0
- package/src/ui/textarea.tsx +21 -0
- package/src/ui/tooltip.tsx +54 -0
- package/src/workspace/index.ts +2 -0
- package/styles.css +532 -0
- package/README.md +0 -3
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import "../task-ui.css";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { ClickUpStatus, ClickUpPhase } from "../types";
|
|
4
|
+
export interface TaskToolbarProps {
|
|
5
|
+
searchQuery: string;
|
|
6
|
+
onSearchChange: (query: string) => void;
|
|
7
|
+
statusFilter?: string;
|
|
8
|
+
onStatusFilterChange?: (statusId: string) => void;
|
|
9
|
+
statuses?: ClickUpStatus[];
|
|
10
|
+
phaseFilter?: string;
|
|
11
|
+
onPhaseFilterChange?: (phaseId: string) => void;
|
|
12
|
+
phases?: ClickUpPhase[];
|
|
13
|
+
onClearFilters?: () => void;
|
|
14
|
+
onAddTask?: () => void;
|
|
15
|
+
canEdit?: boolean;
|
|
16
|
+
className?: string;
|
|
17
|
+
actions?: React.ReactNode;
|
|
18
|
+
}
|
|
19
|
+
export declare const TaskToolbar: React.FC<TaskToolbarProps>;
|
|
20
|
+
export default TaskToolbar;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { WorkspaceSelect } from "../common/WorkspaceSelect.js";
|
|
3
|
+
import { useTranslation } from "react-i18next";
|
|
4
|
+
import { TaskIcon } from "../common/TaskIcon.js";
|
|
5
|
+
import "../task-ui.css";
|
|
6
|
+
import { cn } from "../../support/utils.js";
|
|
7
|
+
import { Button } from "../../components/button.js";
|
|
8
|
+
import { Input } from "../../components/input.js";
|
|
9
|
+
import { ThemedText } from "../../components/ThemedText.js";
|
|
10
|
+
export const TaskToolbar = ({ searchQuery, onSearchChange, statusFilter = "", onStatusFilterChange, statuses = [], phaseFilter = "", onPhaseFilterChange, phases = [], onClearFilters, onAddTask, canEdit = true, className, actions, }) => {
|
|
11
|
+
const { t } = useTranslation("designSystem");
|
|
12
|
+
const hasActiveFilters = Boolean(searchQuery || statusFilter || phaseFilter);
|
|
13
|
+
return (_jsxs("div", { className: cn("cu-task-toolbar", className), children: [statuses.length > 0 && onStatusFilterChange && (_jsxs(WorkspaceSelect, { id: "task-toolbar-status-filter", "aria-label": t("clickup.Filter_by_status"), value: statusFilter, onChange: (e) => onStatusFilterChange(e.target.value), children: [_jsx("option", { value: "", children: t("clickup.All_statuses") }), statuses.map((status) => (_jsx("option", { value: status.id, children: status.label }, status.id)))] })), phases.length > 0 && onPhaseFilterChange && (_jsxs(WorkspaceSelect, { id: "task-toolbar-phase-filter", "aria-label": t("clickup.Filter_by_phase"), value: phaseFilter, onChange: (e) => onPhaseFilterChange(e.target.value), children: [_jsx("option", { value: "", children: t("clickup.All_phases") }), phases.map((phase) => (_jsx("option", { value: phase.id, children: phase.name }, phase.id)))] })), _jsxs("div", { className: "cu-task-toolbar-search", children: [_jsx(TaskIcon, { name: "search", className: "size-[13px] text-dashboard-muted-foreground" }), _jsx(Input, { id: "task-toolbar-search", className: "bg-transparent", "aria-label": t("clickup.Search_tasks"), type: "search", placeholder: t("clickup.Search_tasks"), value: searchQuery, onChange: (e) => onSearchChange(e.target.value) })] }), hasActiveFilters && onClearFilters && (_jsx(Button, { variant: "outline", size: "xs", onClick: onClearFilters, className: "cu-task-toolbar-button", children: _jsx(ThemedText, { as: "span", variant: "body", className: "text-[11px] font-normal text-inherit", children: t("clickup.Clear") }) })), actions, onAddTask && (_jsxs(Button, { disabled: !canEdit, onClick: onAddTask, size: "sm", className: "gap-2", children: [_jsx(TaskIcon, { name: "plus", className: "size-[13px]" }), _jsx(ThemedText, { as: "span", variant: "body", className: "text-[12px] font-semibold text-inherit", children: t("clickup.Add_task") })] }))] }));
|
|
14
|
+
};
|
|
15
|
+
export default TaskToolbar;
|
|
16
|
+
//# sourceMappingURL=TaskToolbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskToolbar.js","sourceRoot":"","sources":["../../../src/clickup/toolbar/TaskToolbar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ClickUpViewType } from "../types";
|
|
2
|
+
import "../task-ui.css";
|
|
3
|
+
export interface TaskViewPickerProps {
|
|
4
|
+
onSelect: (type: ClickUpViewType) => void;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/** Chooses a view type; project naming, persistence and permissions stay with the caller. */
|
|
8
|
+
export declare function TaskViewPicker({ onSelect, disabled }: TaskViewPickerProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { useTranslation } from "react-i18next";
|
|
4
|
+
import { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger, DropdownMenuItem, DropdownMenuGroup, DropdownMenuLabel, } from "../../components/dropdown-menu.js";
|
|
5
|
+
import { ThemedText } from "../../components/ThemedText.js";
|
|
6
|
+
import { TaskIcon } from "../common/TaskIcon.js";
|
|
7
|
+
import { WorkspaceButton } from "../common/WorkspaceButton.js";
|
|
8
|
+
import "../task-ui.css";
|
|
9
|
+
const groups = [
|
|
10
|
+
{
|
|
11
|
+
label: "Popular",
|
|
12
|
+
views: [
|
|
13
|
+
{ type: "list", icon: "list" },
|
|
14
|
+
{ type: "board", icon: "board" },
|
|
15
|
+
{ type: "calendar", icon: "calendar" },
|
|
16
|
+
{ type: "gantt", icon: "timeline" },
|
|
17
|
+
],
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
label: "Data_reporting",
|
|
21
|
+
views: [
|
|
22
|
+
{ type: "table", icon: "overview" },
|
|
23
|
+
{ type: "activity", icon: "activity" },
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
/** Chooses a view type; project naming, persistence and permissions stay with the caller. */
|
|
28
|
+
export function TaskViewPicker({ onSelect, disabled }) {
|
|
29
|
+
const { t } = useTranslation("designSystem");
|
|
30
|
+
const [open, setOpen] = useState(false);
|
|
31
|
+
const [query, setQuery] = useState("");
|
|
32
|
+
return (_jsxs(DropdownMenu, { open: open, onOpenChange: (value) => {
|
|
33
|
+
setOpen(value);
|
|
34
|
+
if (value)
|
|
35
|
+
setQuery("");
|
|
36
|
+
}, children: [_jsxs(DropdownMenuTrigger, { disabled: disabled, render: _jsx(WorkspaceButton, { variant: "outline", size: "sm", className: "gap-[5px]" }), children: [_jsx(TaskIcon, { name: "plus", className: "size-[13px]" }), _jsx(ThemedText, { as: "span", variant: "body", className: "text-[11px] font-normal text-inherit", children: t("clickup.View") })] }), _jsxs(DropdownMenuContent, { align: "start", sideOffset: 6, className: "cu-task-view-picker", children: [_jsxs("label", { className: "cu-task-view-search", children: [_jsx("input", { autoFocus: true, type: "search", "aria-label": t("clickup.Find_view"), placeholder: t("clickup.Find_view"), value: query, onKeyDown: (event) => {
|
|
37
|
+
if (!["Escape", "Tab", "ArrowDown", "ArrowUp"].includes(event.key))
|
|
38
|
+
event.stopPropagation();
|
|
39
|
+
}, onChange: (event) => setQuery(event.target.value) }), _jsx(TaskIcon, { name: "search" })] }), _jsx("div", { className: "cu-task-view-options", children: groups.map((group) => (_jsxs(DropdownMenuGroup, { children: [_jsx(DropdownMenuLabel, { children: _jsx(ThemedText, { as: "h3", variant: "caption", className: "cu-task-view-group-label", children: t(`clickup.${group.label}`) }) }), _jsx("div", { className: "grid grid-cols-2 gap-x-3 gap-y-0.5", children: group.views
|
|
40
|
+
.filter((view) => t(`clickup.view_${view.type}`)
|
|
41
|
+
.toLocaleLowerCase()
|
|
42
|
+
.includes(query.toLocaleLowerCase()))
|
|
43
|
+
.map((view) => (_jsxs(DropdownMenuItem, { className: "cu-task-view-option hover:bg-dashboard-secondary", onClick: () => {
|
|
44
|
+
onSelect(view.type);
|
|
45
|
+
setOpen(false);
|
|
46
|
+
}, children: [_jsx("span", { className: "flex size-[23px] items-center justify-center rounded-[5px] bg-dashboard-primary text-dashboard-primary-foreground", children: _jsx(TaskIcon, { name: view.icon }) }), _jsx(ThemedText, { as: "span", variant: "body", className: "text-[12px] leading-[18px] font-semibold text-inherit", children: t(`clickup.view_${view.type}`) })] }, view.type))) })] }, group.label))) }), _jsx(ThemedText, { as: "p", variant: "caption", className: "cu-task-view-picker-foot", children: t("clickup.View_project_scope") })] })] }));
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=TaskViewPicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskViewPicker.js","sourceRoot":"","sources":["../../../src/clickup/toolbar/TaskViewPicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import "../task-ui.css";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { ClickUpViewType, ClickUpViewOption } from "../types";
|
|
4
|
+
export interface TaskViewSwitcherProps {
|
|
5
|
+
activeView: ClickUpViewType;
|
|
6
|
+
onViewChange: (view: ClickUpViewType) => void;
|
|
7
|
+
views?: ClickUpViewOption[];
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function TaskViewTabs<Key extends string>({ activeView, onViewChange, views, label, className, renderTab, }: {
|
|
11
|
+
activeView: Key;
|
|
12
|
+
onViewChange: (view: Key) => void;
|
|
13
|
+
views: (Omit<ClickUpViewOption, "key"> & {
|
|
14
|
+
key: Key;
|
|
15
|
+
})[];
|
|
16
|
+
className?: string;
|
|
17
|
+
label?: string;
|
|
18
|
+
renderTab?: (key: Key, tab: React.ReactElement) => React.ReactNode;
|
|
19
|
+
}): React.JSX.Element;
|
|
20
|
+
export declare function TaskViewSwitcher({ views, ...props }: TaskViewSwitcherProps): React.JSX.Element;
|
|
21
|
+
export default TaskViewSwitcher;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { TaskIcon } from "../common/TaskIcon.js";
|
|
3
|
+
import "../task-ui.css";
|
|
4
|
+
import React from "react";
|
|
5
|
+
import { cn } from "../../support/utils.js";
|
|
6
|
+
import { ThemedText } from "../../components/ThemedText.js";
|
|
7
|
+
const DEFAULT_VIEWS = [
|
|
8
|
+
{
|
|
9
|
+
key: "list",
|
|
10
|
+
label: "List",
|
|
11
|
+
icon: (props) => _jsx(TaskIcon, { name: "list", ...props }),
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
key: "board",
|
|
15
|
+
label: "Board",
|
|
16
|
+
icon: (props) => _jsx(TaskIcon, { name: "board", ...props }),
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
key: "table",
|
|
20
|
+
label: "Table",
|
|
21
|
+
icon: (props) => _jsx(TaskIcon, { name: "overview", ...props }),
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
key: "gantt",
|
|
25
|
+
label: "Gantt",
|
|
26
|
+
icon: (props) => _jsx(TaskIcon, { name: "timeline", ...props }),
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
key: "calendar",
|
|
30
|
+
label: "Calendar",
|
|
31
|
+
icon: (props) => _jsx(TaskIcon, { name: "calendar", ...props }),
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
key: "activity",
|
|
35
|
+
label: "Activity",
|
|
36
|
+
icon: (props) => _jsx(TaskIcon, { name: "activity", ...props }),
|
|
37
|
+
},
|
|
38
|
+
];
|
|
39
|
+
export function TaskViewTabs({ activeView, onViewChange, views, label = "ClickUp Task Views", className, renderTab, }) {
|
|
40
|
+
return (_jsx("div", { role: "tablist", "aria-label": label, className: cn("cu-task-tabs select-none", className), children: views.map((view) => {
|
|
41
|
+
const isActive = activeView === view.key;
|
|
42
|
+
const IconComponent = view.icon;
|
|
43
|
+
const tab = (_jsxs("button", { role: "tab", "aria-selected": isActive, type: "button", onClick: () => onViewChange(view.key), className: cn("cu-task-tab shrink-0", isActive
|
|
44
|
+
? "border-dashboard-primary text-dashboard-primary font-semibold"
|
|
45
|
+
: "border-transparent text-dashboard-muted-foreground hover:text-dashboard-foreground hover:border-dashboard-border"), children: [IconComponent && (_jsx(IconComponent, { className: "size-[13px] shrink-0" })), _jsx(ThemedText, { variant: "caption", as: "span", className: "cu-task-tab-label", children: view.label }), typeof view.count === "number" && (_jsx(ThemedText, { as: "span", variant: "caption", className: cn("text-[10px] px-1.5 py-0.2 rounded-full font-semibold", isActive
|
|
46
|
+
? "bg-dashboard-primary/20 text-dashboard-primary"
|
|
47
|
+
: "bg-dashboard-secondary text-dashboard-muted-foreground"), children: view.count }))] }, view.key));
|
|
48
|
+
return (_jsx(React.Fragment, { children: renderTab ? renderTab(view.key, tab) : tab }, view.key));
|
|
49
|
+
}) }));
|
|
50
|
+
}
|
|
51
|
+
export function TaskViewSwitcher({ views = DEFAULT_VIEWS, ...props }) {
|
|
52
|
+
return _jsx(TaskViewTabs, { ...props, views: views });
|
|
53
|
+
}
|
|
54
|
+
export default TaskViewSwitcher;
|
|
55
|
+
//# sourceMappingURL=TaskViewSwitcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskViewSwitcher.js","sourceRoot":"","sources":["../../../src/clickup/toolbar/TaskViewSwitcher.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export type ClickUpPriority = "Urgent" | "High" | "Normal" | "Low";
|
|
3
|
+
export interface ClickUpStatus {
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
color: string;
|
|
7
|
+
category?: "not_started" | "active" | "done" | "closed" | "cancelled";
|
|
8
|
+
}
|
|
9
|
+
export interface ClickUpUser {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
avatar?: string;
|
|
13
|
+
email?: string;
|
|
14
|
+
color?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface ClickUpPhase {
|
|
17
|
+
id: string;
|
|
18
|
+
name: string;
|
|
19
|
+
color?: string;
|
|
20
|
+
order?: number;
|
|
21
|
+
}
|
|
22
|
+
export interface ClickUpSprint {
|
|
23
|
+
id: string;
|
|
24
|
+
name: string;
|
|
25
|
+
}
|
|
26
|
+
export interface ClickUpTask {
|
|
27
|
+
id: string;
|
|
28
|
+
title: string;
|
|
29
|
+
description?: string;
|
|
30
|
+
status_id: string;
|
|
31
|
+
status?: ClickUpStatus;
|
|
32
|
+
phase_id?: string;
|
|
33
|
+
phase_name?: string;
|
|
34
|
+
assignee_id?: string;
|
|
35
|
+
assignee?: ClickUpUser;
|
|
36
|
+
due_date?: string;
|
|
37
|
+
start_date?: string;
|
|
38
|
+
priority?: ClickUpPriority | string;
|
|
39
|
+
sprint_id?: string;
|
|
40
|
+
sprint_name?: string;
|
|
41
|
+
tags?: string[];
|
|
42
|
+
points?: number;
|
|
43
|
+
completed?: boolean;
|
|
44
|
+
comments_count?: number;
|
|
45
|
+
created_at?: string;
|
|
46
|
+
updated_at?: string;
|
|
47
|
+
[key: string]: any;
|
|
48
|
+
}
|
|
49
|
+
export interface ClickUpComment {
|
|
50
|
+
id: string;
|
|
51
|
+
task_id: string;
|
|
52
|
+
actor_id: string;
|
|
53
|
+
actor_name: string;
|
|
54
|
+
actor_avatar?: string;
|
|
55
|
+
body: string;
|
|
56
|
+
created_at: string;
|
|
57
|
+
}
|
|
58
|
+
export type ClickUpViewType = "list" | "board" | "table" | "gantt" | "calendar" | "activity";
|
|
59
|
+
export interface ClickUpViewOption {
|
|
60
|
+
key: ClickUpViewType;
|
|
61
|
+
label: string;
|
|
62
|
+
icon?: React.ComponentType<{
|
|
63
|
+
className?: string;
|
|
64
|
+
}>;
|
|
65
|
+
count?: number;
|
|
66
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/clickup/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import "../task-ui.css";
|
|
3
|
+
import { ClickUpTask, ClickUpStatus, ClickUpPhase, ClickUpUser } from "../types";
|
|
4
|
+
export interface TaskBoardViewProps {
|
|
5
|
+
tasks: ClickUpTask[];
|
|
6
|
+
statuses: ClickUpStatus[];
|
|
7
|
+
phases?: ClickUpPhase[];
|
|
8
|
+
users?: ClickUpUser[];
|
|
9
|
+
canEdit?: boolean;
|
|
10
|
+
collapsedGroupIds?: Record<string, boolean>;
|
|
11
|
+
onToggleGroup?: (statusId: string) => void;
|
|
12
|
+
onTaskMove?: (taskId: string, targetStatusId: string) => void;
|
|
13
|
+
onTaskClick?: (task: ClickUpTask) => void;
|
|
14
|
+
onToggleComplete?: (task: ClickUpTask, checked: boolean) => void;
|
|
15
|
+
onAddTask?: (statusId: string) => void;
|
|
16
|
+
onStatusAction?: (status: ClickUpStatus) => void;
|
|
17
|
+
onAddStatus?: () => void;
|
|
18
|
+
className?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare const TaskBoardView: React.FC<TaskBoardViewProps>;
|
|
21
|
+
export default TaskBoardView;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation } from "react-i18next";
|
|
3
|
+
import React, { useState } from "react";
|
|
4
|
+
import { ChevronRight, PanelLeftClose } from "lucide-react";
|
|
5
|
+
import { TaskIcon } from "../common/TaskIcon.js";
|
|
6
|
+
import "../task-ui.css";
|
|
7
|
+
import { cn } from "../../support/utils.js";
|
|
8
|
+
import { TaskStatusPill } from "../common/TaskStatusPill.js";
|
|
9
|
+
import { TaskCard } from "../elements/TaskCard.js";
|
|
10
|
+
import { ThemedText } from "../../components/ThemedText.js";
|
|
11
|
+
import { WorkspaceActionMenu, WorkspaceContextMenu, } from "../common/WorkspaceMenus.js";
|
|
12
|
+
export const TaskBoardView = ({ tasks, statuses, phases = [], users = [], canEdit = true, collapsedGroupIds, onToggleGroup, onTaskMove, onTaskClick, onToggleComplete, onAddTask, onStatusAction, onAddStatus, className, }) => {
|
|
13
|
+
const { t: tr } = useTranslation("designSystem");
|
|
14
|
+
const [dragOverStatusId, setDragOverStatusId] = useState(null);
|
|
15
|
+
const phaseMap = React.useMemo(() => {
|
|
16
|
+
const map = new Map();
|
|
17
|
+
phases.forEach((p) => map.set(p.id, p));
|
|
18
|
+
return map;
|
|
19
|
+
}, [phases]);
|
|
20
|
+
const userMap = React.useMemo(() => {
|
|
21
|
+
const map = new Map();
|
|
22
|
+
users.forEach((u) => map.set(u.id, u));
|
|
23
|
+
return map;
|
|
24
|
+
}, [users]);
|
|
25
|
+
const handleDragOver = (e, statusId) => {
|
|
26
|
+
if (!canEdit)
|
|
27
|
+
return;
|
|
28
|
+
e.preventDefault();
|
|
29
|
+
if (dragOverStatusId !== statusId) {
|
|
30
|
+
setDragOverStatusId(statusId);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
const handleDragLeave = (e, statusId) => {
|
|
34
|
+
if (dragOverStatusId === statusId) {
|
|
35
|
+
setDragOverStatusId(null);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const handleDrop = (e, statusId) => {
|
|
39
|
+
e.preventDefault();
|
|
40
|
+
setDragOverStatusId(null);
|
|
41
|
+
if (!canEdit || !onTaskMove)
|
|
42
|
+
return;
|
|
43
|
+
const taskId = e.dataTransfer.getData("text/plain");
|
|
44
|
+
if (taskId) {
|
|
45
|
+
onTaskMove(taskId, statusId);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
return (_jsxs("div", { className: cn("cu-task-board", className), children: [statuses.map((status) => {
|
|
49
|
+
const columnTasks = tasks.filter((t) => t.status_id === status.id);
|
|
50
|
+
const isCollapsed = Boolean(collapsedGroupIds?.[status.id]);
|
|
51
|
+
const isDragOver = dragOverStatusId === status.id;
|
|
52
|
+
const statusActions = onStatusAction
|
|
53
|
+
? [
|
|
54
|
+
{
|
|
55
|
+
id: "configure",
|
|
56
|
+
label: tr("clickup.Configure_status", { status: status.label }),
|
|
57
|
+
disabled: !canEdit,
|
|
58
|
+
onSelect: () => onStatusAction(status),
|
|
59
|
+
},
|
|
60
|
+
]
|
|
61
|
+
: [];
|
|
62
|
+
if (isCollapsed) {
|
|
63
|
+
return (_jsxs("section", { onClick: () => onToggleGroup?.(status.id), onDragOver: (e) => handleDragOver(e, status.id), onDragLeave: (e) => handleDragLeave(e, status.id), onDrop: (e) => handleDrop(e, status.id), className: cn("w-10 min-w-10 h-[520px] rounded-xl border border-dashboard-border bg-dashboard-secondary/40 hover:bg-dashboard-secondary/80 transition-all p-2 flex flex-col items-center justify-between cursor-pointer select-none group shrink-0", isDragOver &&
|
|
64
|
+
"ring-2 ring-dashboard-primary border-dashboard-primary bg-dashboard-card"), title: `${status.label} (${columnTasks.length})`, "aria-label": `Expand ${status.label} column`, children: [_jsxs("div", { className: "flex flex-col items-center gap-2 pt-1", children: [_jsx(ChevronRight, { className: "size-3.5 text-dashboard-muted-foreground group-hover:text-dashboard-foreground rtl:rotate-180 transition-transform" }), _jsx("span", { className: "size-2 rounded-full shrink-0", style: { backgroundColor: status.color } })] }), _jsx("div", { className: "[writing-mode:vertical-rl] rotate-180 text-xs font-semibold text-dashboard-muted-foreground group-hover:text-dashboard-foreground tracking-wide whitespace-nowrap overflow-hidden text-ellipsis max-h-[340px]", children: status.label }), _jsx("div", { className: "size-5 rounded-full bg-dashboard-secondary border border-dashboard-border flex items-center justify-center text-[10px] font-bold text-dashboard-foreground pb-0.5", children: columnTasks.length })] }, status.id));
|
|
65
|
+
}
|
|
66
|
+
return (_jsxs("section", { onDragOver: (e) => handleDragOver(e, status.id), onDragLeave: (e) => handleDragLeave(e, status.id), onDrop: (e) => handleDrop(e, status.id), className: cn("cu-task-board-column border transition-colors", "bg-dashboard-secondary/30 border-dashboard-border", isDragOver &&
|
|
67
|
+
"ring-2 ring-dashboard-primary border-dashboard-primary bg-dashboard-card"), children: [_jsx(WorkspaceContextMenu, { actions: statusActions, children: _jsxs("div", { className: "cu-task-board-head", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(TaskStatusPill, { status: status, size: "sm" }), _jsx(ThemedText, { variant: "caption", as: "span", className: "text-dashboard-muted-foreground text-[10px] leading-[15px] font-normal", children: columnTasks.length })] }), _jsxs("div", { className: "ms-auto flex items-center gap-1", children: [onToggleGroup && (_jsx("button", { type: "button", onClick: () => onToggleGroup(status.id), className: "p-1 rounded text-dashboard-muted-foreground hover:text-dashboard-foreground hover:bg-dashboard-secondary transition-colors cursor-pointer", title: tr("clickup.Collapse_column", {
|
|
68
|
+
defaultValue: "Collapse column",
|
|
69
|
+
}), "aria-label": `${tr("clickup.Collapse_column", { defaultValue: "Collapse" })} ${status.label}`, children: _jsx(PanelLeftClose, { className: "size-3.5" }) })), onStatusAction && (_jsx(WorkspaceActionMenu, { label: tr("clickup.Configure_status", {
|
|
70
|
+
status: status.label,
|
|
71
|
+
}), actions: statusActions, className: "cu-task-icon-button" }))] })] }) }), _jsx("div", { className: "cu-task-board-cards", children: columnTasks.map((task) => (_jsx(TaskCard, { task: task, phase: task.phase_id ? phaseMap.get(task.phase_id) : undefined, assignee: task.assignee_id ? userMap.get(task.assignee_id) : undefined, canEdit: canEdit, draggable: canEdit, onClick: onTaskClick, onToggleComplete: onToggleComplete }, task.id))) }), canEdit && onAddTask && (_jsxs("button", { type: "button", onClick: () => onAddTask(status.id), className: "cu-task-board-add hover:bg-dashboard-secondary", children: [_jsx(TaskIcon, { name: "plus", className: "size-[13px]" }), _jsx(ThemedText, { as: "span", variant: "body", className: "text-[11px] leading-[16.5px] font-normal text-inherit", children: tr("clickup.Add_task") })] }))] }, status.id));
|
|
72
|
+
}), onAddStatus && (_jsxs("button", { type: "button", disabled: !canEdit, onClick: onAddStatus, className: "cu-task-add-group inline-flex items-center gap-2 hover:bg-dashboard-secondary", children: [_jsx(TaskIcon, { name: "plus", className: "size-[13px]" }), _jsx(ThemedText, { as: "span", variant: "body", className: "text-[12px] font-normal text-inherit", children: tr("clickup.Add_group") })] }))] }));
|
|
73
|
+
};
|
|
74
|
+
export default TaskBoardView;
|
|
75
|
+
//# sourceMappingURL=TaskBoardView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskBoardView.js","sourceRoot":"","sources":["../../../src/clickup/views/TaskBoardView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ClickUpTask } from "../types";
|
|
3
|
+
import "../task-ui.css";
|
|
4
|
+
export interface TaskCalendarViewProps {
|
|
5
|
+
tasks: ClickUpTask[];
|
|
6
|
+
initialDate?: Date;
|
|
7
|
+
onTaskClick?: (task: ClickUpTask) => void;
|
|
8
|
+
onDayClick?: (dateIso: string) => void;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const TaskCalendarView: React.FC<TaskCalendarViewProps>;
|
|
12
|
+
export default TaskCalendarView;
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation } from "react-i18next";
|
|
3
|
+
import { useMemo, useState } from "react";
|
|
4
|
+
import { cn } from "../../support/utils.js";
|
|
5
|
+
import { Button } from "../../components/button.js";
|
|
6
|
+
import { ThemedText } from "../../components/ThemedText.js";
|
|
7
|
+
import { ChevronLeft, ChevronRight } from "lucide-react";
|
|
8
|
+
import "../task-ui.css";
|
|
9
|
+
function parseToMidnight(val) {
|
|
10
|
+
if (!val)
|
|
11
|
+
return null;
|
|
12
|
+
const s = String(val).trim();
|
|
13
|
+
if (s.length >= 10 && s[4] === "-" && s[7] === "-") {
|
|
14
|
+
const y = parseInt(s.slice(0, 4), 10);
|
|
15
|
+
const m = parseInt(s.slice(5, 7), 10) - 1;
|
|
16
|
+
const d = parseInt(s.slice(8, 10), 10);
|
|
17
|
+
return new Date(y, m, d, 0, 0, 0, 0);
|
|
18
|
+
}
|
|
19
|
+
const parsed = new Date(s);
|
|
20
|
+
if (!isNaN(parsed.getTime())) {
|
|
21
|
+
return new Date(parsed.getFullYear(), parsed.getMonth(), parsed.getDate(), 0, 0, 0, 0);
|
|
22
|
+
}
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
export const TaskCalendarView = ({ tasks, initialDate, onTaskClick, onDayClick, className, }) => {
|
|
26
|
+
const { t: tr, i18n } = useTranslation("designSystem");
|
|
27
|
+
const [currentDate, setCurrentDate] = useState(() => initialDate || new Date());
|
|
28
|
+
const year = currentDate.getFullYear();
|
|
29
|
+
const month = currentDate.getMonth();
|
|
30
|
+
const handlePrevMonth = () => {
|
|
31
|
+
setCurrentDate((prev) => new Date(prev.getFullYear(), prev.getMonth() - 1, 1));
|
|
32
|
+
};
|
|
33
|
+
const handleNextMonth = () => {
|
|
34
|
+
setCurrentDate((prev) => new Date(prev.getFullYear(), prev.getMonth() + 1, 1));
|
|
35
|
+
};
|
|
36
|
+
const handleToday = () => {
|
|
37
|
+
setCurrentDate(new Date());
|
|
38
|
+
};
|
|
39
|
+
const monthLabel = new Intl.DateTimeFormat(i18n.language, {
|
|
40
|
+
month: "long",
|
|
41
|
+
year: "numeric",
|
|
42
|
+
}).format(new Date(year, month, 1));
|
|
43
|
+
const todayStr = useMemo(() => {
|
|
44
|
+
const now = new Date();
|
|
45
|
+
const y = now.getFullYear();
|
|
46
|
+
const m = String(now.getMonth() + 1).padStart(2, "0");
|
|
47
|
+
const d = String(now.getDate()).padStart(2, "0");
|
|
48
|
+
return `${y}-${m}-${d}`;
|
|
49
|
+
}, []);
|
|
50
|
+
// Compute weeks (Monday to Sunday)
|
|
51
|
+
const calendarWeeks = useMemo(() => {
|
|
52
|
+
const firstDay = new Date(year, month, 1);
|
|
53
|
+
// Monday as index 0: (day + 6) % 7
|
|
54
|
+
const startDayOfWeek = (firstDay.getDay() + 6) % 7;
|
|
55
|
+
const startDate = new Date(year, month, 1 - startDayOfWeek);
|
|
56
|
+
const lastDayOfMonth = new Date(year, month + 1, 0).getDate();
|
|
57
|
+
const totalDaysNeeded = startDayOfWeek + lastDayOfMonth;
|
|
58
|
+
const totalCells = Math.ceil(totalDaysNeeded / 7) * 7;
|
|
59
|
+
const weeks = [];
|
|
60
|
+
const iter = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate(), 0, 0, 0, 0);
|
|
61
|
+
for (let w = 0; w < totalCells / 7; w++) {
|
|
62
|
+
const weekRow = [];
|
|
63
|
+
for (let d = 0; d < 7; d++) {
|
|
64
|
+
const y = iter.getFullYear();
|
|
65
|
+
const m = iter.getMonth();
|
|
66
|
+
const dayNum = iter.getDate();
|
|
67
|
+
const mStr = String(m + 1).padStart(2, "0");
|
|
68
|
+
const dStr = String(dayNum).padStart(2, "0");
|
|
69
|
+
const dateIso = `${y}-${mStr}-${dStr}`;
|
|
70
|
+
weekRow.push({
|
|
71
|
+
date: new Date(iter.getTime()),
|
|
72
|
+
dayNumber: dayNum,
|
|
73
|
+
month: m,
|
|
74
|
+
year: y,
|
|
75
|
+
dateIso,
|
|
76
|
+
isCurrentMonth: m === month,
|
|
77
|
+
isToday: dateIso === todayStr,
|
|
78
|
+
});
|
|
79
|
+
iter.setDate(iter.getDate() + 1);
|
|
80
|
+
}
|
|
81
|
+
weeks.push(weekRow);
|
|
82
|
+
}
|
|
83
|
+
return weeks;
|
|
84
|
+
}, [year, month, todayStr]);
|
|
85
|
+
const weekDayNames = useMemo(() => {
|
|
86
|
+
// Array of Mon, Tue, Wed, Thu, Fri, Sat, Sun
|
|
87
|
+
return Array.from({ length: 7 }, (_, i) => {
|
|
88
|
+
// 2026-01-05 is a Monday
|
|
89
|
+
return new Intl.DateTimeFormat(i18n.language, {
|
|
90
|
+
weekday: "short",
|
|
91
|
+
}).format(new Date(2026, 0, 5 + i));
|
|
92
|
+
});
|
|
93
|
+
}, [i18n.language]);
|
|
94
|
+
return (_jsxs("div", { className: cn("cu-task-calendar flex flex-col w-full", className), children: [_jsxs("div", { className: "cu-task-calendar-nav flex items-center justify-between gap-3 mb-3", children: [_jsx(ThemedText, { variant: "title", as: "h2", className: "text-base font-semibold text-dashboard-foreground", children: monthLabel }), _jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx(Button, { variant: "outline", size: "xs", onClick: handlePrevMonth, "aria-label": tr("clickup.Previous_month", {
|
|
95
|
+
defaultValue: "Previous month",
|
|
96
|
+
}), className: "p-1 h-7 w-7 rounded-md border-dashboard-border hover:bg-dashboard-secondary cursor-pointer", children: _jsx(ChevronLeft, { className: "size-3.5 rtl:rotate-180" }) }), _jsx(Button, { variant: "outline", size: "xs", onClick: handleNextMonth, "aria-label": tr("clickup.Next_month", {
|
|
97
|
+
defaultValue: "Next month",
|
|
98
|
+
}), className: "p-1 h-7 w-7 rounded-md border-dashboard-border hover:bg-dashboard-secondary cursor-pointer", children: _jsx(ChevronRight, { className: "size-3.5 rtl:rotate-180" }) }), _jsx(Button, { variant: "ghost", size: "xs", onClick: handleToday, "aria-label": "Jump to current month", className: "text-xs text-dashboard-muted-foreground hover:text-dashboard-foreground hover:bg-dashboard-secondary px-2.5 h-7 rounded-md cursor-pointer", children: _jsx(ThemedText, { as: "span", variant: "caption", className: "text-inherit", children: tr("clickup.Today", { defaultValue: "Today" }) }) })] })] }), _jsxs("div", { className: "rounded-xl border border-dashboard-border bg-dashboard-card overflow-x-auto min-w-[640px] shadow-2xs", children: [_jsx("div", { className: "grid grid-cols-7 border-b border-dashboard-border bg-dashboard-secondary/40 divide-x divide-dashboard-border", children: weekDayNames.map((day) => (_jsx(ThemedText, { as: "div", variant: "caption", className: "py-2 text-center text-xs font-semibold text-dashboard-muted-foreground", children: day }, day))) }), _jsx("div", { className: "flex flex-col divide-y divide-dashboard-border", children: calendarWeeks.map((weekDaysList, weekIdx) => {
|
|
99
|
+
const weekStartMs = weekDaysList[0].date.getTime();
|
|
100
|
+
const weekEndMs = weekDaysList[6].date.getTime();
|
|
101
|
+
// Filter tasks overlapping this week
|
|
102
|
+
const weekTasks = tasks.filter((t) => {
|
|
103
|
+
const sDate = parseToMidnight(t.start_date || t.startDate);
|
|
104
|
+
const dDate = parseToMidnight(t.due_date || t.dueDate || t.endDate);
|
|
105
|
+
if (!sDate && !dDate)
|
|
106
|
+
return false;
|
|
107
|
+
const sMs = sDate ? sDate.getTime() : dDate.getTime();
|
|
108
|
+
const dMs = dDate ? dDate.getTime() : sMs;
|
|
109
|
+
const minMs = Math.min(sMs, dMs);
|
|
110
|
+
const maxMs = Math.max(sMs, dMs);
|
|
111
|
+
return maxMs >= weekStartMs && minMs <= weekEndMs;
|
|
112
|
+
});
|
|
113
|
+
// Map tasks to columns in this week
|
|
114
|
+
const taskSpanMap = {};
|
|
115
|
+
const sortedWeekTasks = weekTasks
|
|
116
|
+
.map((task) => {
|
|
117
|
+
const sDate = parseToMidnight(task.start_date || task.startDate);
|
|
118
|
+
const dDate = parseToMidnight(task.due_date ||
|
|
119
|
+
task.dueDate ||
|
|
120
|
+
task.endDate);
|
|
121
|
+
const sMs = sDate ? sDate.getTime() : dDate.getTime();
|
|
122
|
+
const dMs = dDate ? dDate.getTime() : sMs;
|
|
123
|
+
const minMs = Math.min(sMs, dMs);
|
|
124
|
+
const maxMs = Math.max(sMs, dMs);
|
|
125
|
+
let startCol = 0;
|
|
126
|
+
let endCol = 6;
|
|
127
|
+
weekDaysList.forEach((cell, colIdx) => {
|
|
128
|
+
const cellTime = cell.date.getTime();
|
|
129
|
+
if (cellTime === minMs)
|
|
130
|
+
startCol = colIdx;
|
|
131
|
+
if (cellTime === maxMs)
|
|
132
|
+
endCol = colIdx;
|
|
133
|
+
});
|
|
134
|
+
if (minMs < weekStartMs)
|
|
135
|
+
startCol = 0;
|
|
136
|
+
if (maxMs > weekEndMs)
|
|
137
|
+
endCol = 6;
|
|
138
|
+
const colSpan = Math.max(1, endCol - startCol + 1);
|
|
139
|
+
taskSpanMap[task.id] = { startCol, endCol, colSpan };
|
|
140
|
+
return { task, startCol, endCol, colSpan };
|
|
141
|
+
})
|
|
142
|
+
.sort((a, b) => a.startCol - b.startCol || b.colSpan - a.colSpan);
|
|
143
|
+
// Compute vertical non-overlapping tracks
|
|
144
|
+
const taskTrackMap = {};
|
|
145
|
+
const trackEndCols = [];
|
|
146
|
+
sortedWeekTasks.forEach(({ task, startCol, endCol }) => {
|
|
147
|
+
let assignedTrack = -1;
|
|
148
|
+
for (let t = 0; t < trackEndCols.length; t++) {
|
|
149
|
+
if (trackEndCols[t] < startCol) {
|
|
150
|
+
assignedTrack = t;
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
if (assignedTrack === -1) {
|
|
155
|
+
assignedTrack = trackEndCols.length;
|
|
156
|
+
trackEndCols.push(endCol);
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
trackEndCols[assignedTrack] = endCol;
|
|
160
|
+
}
|
|
161
|
+
taskTrackMap[task.id] = assignedTrack;
|
|
162
|
+
});
|
|
163
|
+
const totalTracks = Math.max(1, trackEndCols.length);
|
|
164
|
+
const rowMinHeight = Math.max(112, 34 + totalTracks * 28);
|
|
165
|
+
return (_jsxs("div", { style: { minHeight: `${rowMinHeight}px` }, className: "relative grid grid-cols-7 divide-x divide-dashboard-border flex-1", children: [weekDaysList.map((cell) => (_jsx("div", { onClick: () => onDayClick?.(cell.dateIso), className: cn("p-2 flex flex-col hover:bg-dashboard-secondary/20 transition-colors relative cursor-pointer select-none group", !cell.isCurrentMonth &&
|
|
166
|
+
"bg-dashboard-secondary/10 opacity-50", cell.isToday && "bg-dashboard-primary/5"), children: _jsx("div", { className: "flex items-center justify-between w-full mb-1 shrink-0", children: _jsx("span", { className: cn("text-[11px] font-medium leading-none px-1", cell.isToday
|
|
167
|
+
? "bg-dashboard-primary text-white size-5 rounded-full flex items-center justify-center font-bold"
|
|
168
|
+
: cell.isCurrentMonth
|
|
169
|
+
? "text-dashboard-foreground"
|
|
170
|
+
: "text-dashboard-muted-foreground/60"), children: cell.dayNumber }) }) }, cell.dateIso))), weekTasks.map((task) => {
|
|
171
|
+
const { startCol, colSpan } = taskSpanMap[task.id] || {
|
|
172
|
+
startCol: 0,
|
|
173
|
+
endCol: 0,
|
|
174
|
+
colSpan: 1,
|
|
175
|
+
};
|
|
176
|
+
const trackIdx = taskTrackMap[task.id] ?? 0;
|
|
177
|
+
const isCompleted = task.completed ||
|
|
178
|
+
task.status?.category === "done" ||
|
|
179
|
+
task.status_id === "completed";
|
|
180
|
+
const statusColor = task.status?.color || "var(--color-dashboard-primary)";
|
|
181
|
+
const leftPercent = (startCol / 7) * 100;
|
|
182
|
+
const widthPercent = (colSpan / 7) * 100;
|
|
183
|
+
return (_jsxs("div", { onClick: (e) => {
|
|
184
|
+
e.stopPropagation();
|
|
185
|
+
onTaskClick?.(task);
|
|
186
|
+
}, style: {
|
|
187
|
+
left: `calc(${leftPercent}% + 4px)`,
|
|
188
|
+
width: `calc(${widthPercent}% - 8px)`,
|
|
189
|
+
top: `${28 + trackIdx * 26}px`,
|
|
190
|
+
}, className: cn("absolute z-10 h-[22px] rounded-md text-xs border px-2 flex items-center justify-between cursor-pointer select-none transition-all shadow-2xs hover:shadow-md hover:border-dashboard-primary hover:z-20 group/task", isCompleted
|
|
191
|
+
? "line-through opacity-70 bg-dashboard-secondary/60 text-dashboard-muted-foreground border-dashboard-border"
|
|
192
|
+
: "bg-dashboard-card text-dashboard-foreground border-dashboard-border hover:bg-dashboard-secondary/80"), title: `${task.name || task.title} (${colSpan > 1 ? `${colSpan} days` : "1 day"})`, children: [_jsxs("div", { className: "flex items-center gap-1.5 min-w-0 flex-1 overflow-hidden", children: [_jsx("span", { className: "size-1.5 rounded-full shrink-0", style: { backgroundColor: statusColor } }), _jsx("span", { className: "truncate text-dashboard-foreground font-medium text-[11px] leading-tight", children: task.name || task.title })] }), colSpan > 1 && (_jsxs("span", { className: "text-[10px] text-dashboard-muted-foreground shrink-0 ms-1 opacity-80 font-normal", children: [colSpan, "d"] }))] }, task.id));
|
|
193
|
+
})] }, weekIdx));
|
|
194
|
+
}) })] })] }));
|
|
195
|
+
};
|
|
196
|
+
export default TaskCalendarView;
|
|
197
|
+
//# sourceMappingURL=TaskCalendarView.js.map
|