@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 @@
|
|
|
1
|
+
{"version":3,"file":"TaskCalendarView.js","sourceRoot":"","sources":["../../../src/clickup/views/TaskCalendarView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import "../task-ui.css";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { ClickUpTask } from "../types";
|
|
4
|
+
export interface TaskGanttViewProps {
|
|
5
|
+
tasks: ClickUpTask[];
|
|
6
|
+
startDate?: Date;
|
|
7
|
+
daysCount?: number;
|
|
8
|
+
onTaskClick?: (task: ClickUpTask) => void;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const TaskGanttView: React.FC<TaskGanttViewProps>;
|
|
12
|
+
export default TaskGanttView;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import "../task-ui.css";
|
|
3
|
+
import { useTranslation } from "react-i18next";
|
|
4
|
+
import React from "react";
|
|
5
|
+
import { cn } from "../../support/utils.js";
|
|
6
|
+
import { TaskTimelineRow } from "../elements/TaskTimelineRow.js";
|
|
7
|
+
import { ThemedText } from "../../components/ThemedText.js";
|
|
8
|
+
export const TaskGanttView = ({ tasks, startDate, daysCount = 28, onTaskClick, className, }) => {
|
|
9
|
+
const { t: tr, i18n } = useTranslation("designSystem");
|
|
10
|
+
// Compute timeline window
|
|
11
|
+
const baseStart = React.useMemo(() => {
|
|
12
|
+
if (startDate)
|
|
13
|
+
return new Date(startDate);
|
|
14
|
+
const validDates = tasks
|
|
15
|
+
.map((t) => t.start_date)
|
|
16
|
+
.filter(Boolean)
|
|
17
|
+
.map((d) => new Date(d).getTime())
|
|
18
|
+
.filter((t) => !isNaN(t));
|
|
19
|
+
if (validDates.length > 0) {
|
|
20
|
+
return new Date(Math.min(...validDates));
|
|
21
|
+
}
|
|
22
|
+
return new Date();
|
|
23
|
+
}, [startDate, tasks]);
|
|
24
|
+
const DAY_MS = 86400000;
|
|
25
|
+
const startTime = Date.UTC(baseStart.getUTCFullYear(), baseStart.getUTCMonth(), baseStart.getUTCDate());
|
|
26
|
+
const days = Array.from({ length: daysCount }, (_, i) => {
|
|
27
|
+
const d = new Date(startTime + i * DAY_MS);
|
|
28
|
+
return {
|
|
29
|
+
date: d,
|
|
30
|
+
dayNumber: d.getUTCDate(),
|
|
31
|
+
isWeekend: d.getUTCDay() === 0 || d.getUTCDay() === 6,
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
const rangeLabel = React.useMemo(() => {
|
|
35
|
+
const startStr = new Intl.DateTimeFormat(i18n.language, {
|
|
36
|
+
month: "short",
|
|
37
|
+
day: "numeric",
|
|
38
|
+
timeZone: "UTC",
|
|
39
|
+
}).format(new Date(startTime));
|
|
40
|
+
const endStr = new Intl.DateTimeFormat(i18n.language, {
|
|
41
|
+
month: "short",
|
|
42
|
+
day: "numeric",
|
|
43
|
+
year: "numeric",
|
|
44
|
+
timeZone: "UTC",
|
|
45
|
+
}).format(new Date(startTime + (daysCount - 1) * DAY_MS));
|
|
46
|
+
return `${startStr} - ${endStr}`;
|
|
47
|
+
}, [startTime, daysCount, i18n.language]);
|
|
48
|
+
const scheduledTasks = tasks.filter((t) => t.start_date && t.due_date);
|
|
49
|
+
return (_jsxs("div", { className: cn("space-y-3 py-2", className), children: [_jsxs("div", { className: "cu-task-gantt-header", children: [_jsx(ThemedText, { variant: "title", as: "h3", className: "text-sm font-semibold text-dashboard-foreground", children: rangeLabel }), _jsx(ThemedText, { variant: "caption", as: "span", className: "text-xs text-dashboard-muted-foreground", children: tr("clickup.dateRange", { count: daysCount }) })] }), _jsx("div", { className: "overflow-x-auto", children: _jsxs("div", { className: "cu-task-timeline", style: { "--task-days-count": daysCount }, children: [_jsxs("div", { className: "cu-task-timeline-row", children: [_jsx(ThemedText, { as: "span", variant: "body", className: "cu-task-timeline-label text-[11px] font-medium text-dashboard-muted-foreground", children: tr("clickup.Project_Task") }), _jsx("div", { className: "cu-task-timeline-days", children: days.map((d, index) => (_jsx(ThemedText, { as: "span", variant: "caption", className: cn("cu-task-timeline-day", d.isWeekend
|
|
50
|
+
? "text-dashboard-muted-foreground/40"
|
|
51
|
+
: "text-dashboard-muted-foreground font-medium"), children: d.dayNumber }, index))) })] }), _jsxs("div", { className: "divide-y divide-dashboard-border/30", children: [scheduledTasks.map((task) => {
|
|
52
|
+
const startTask = Date.parse(task.start_date + "T00:00:00Z");
|
|
53
|
+
const dueTask = Date.parse(task.due_date + "T00:00:00Z");
|
|
54
|
+
const leftDays = Math.max(0, (startTask - startTime) / DAY_MS);
|
|
55
|
+
const endDays = Math.min(daysCount, (dueTask - startTime) / DAY_MS + 1);
|
|
56
|
+
if (endDays <= leftDays || leftDays >= daysCount)
|
|
57
|
+
return null;
|
|
58
|
+
const leftPercent = (leftDays / daysCount) * 100;
|
|
59
|
+
const widthPercent = ((endDays - leftDays) / daysCount) * 100;
|
|
60
|
+
return (_jsx(TaskTimelineRow, { task: task, status: task.status, leftPercent: leftPercent, widthPercent: widthPercent, onClick: onTaskClick }, task.id));
|
|
61
|
+
}), scheduledTasks.length === 0 && (_jsx("div", { className: "py-12 text-center text-dashboard-muted-foreground text-xs", children: _jsx(ThemedText, { as: "p", variant: "body", children: tr("clickup.noScheduled") }) }))] })] }) }), _jsx(ThemedText, { variant: "caption", as: "p", className: "text-[11px] text-dashboard-muted-foreground/70 pt-1", children: tr("clickup.projection") })] }));
|
|
62
|
+
};
|
|
63
|
+
export default TaskGanttView;
|
|
64
|
+
//# sourceMappingURL=TaskGanttView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskGanttView.js","sourceRoot":"","sources":["../../../src/clickup/views/TaskGanttView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ClickUpTask, ClickUpStatus, ClickUpPhase, ClickUpUser } from "../types";
|
|
3
|
+
export interface TaskListViewProps {
|
|
4
|
+
tasks: ClickUpTask[];
|
|
5
|
+
statuses: ClickUpStatus[];
|
|
6
|
+
phases?: ClickUpPhase[];
|
|
7
|
+
users?: ClickUpUser[];
|
|
8
|
+
canEdit?: boolean;
|
|
9
|
+
collapsedGroupIds?: Record<string, boolean>;
|
|
10
|
+
onToggleGroup?: (statusId: string) => void;
|
|
11
|
+
onToggleComplete?: (task: ClickUpTask, checked: boolean) => void;
|
|
12
|
+
onTaskClick?: (task: ClickUpTask) => void;
|
|
13
|
+
onAddTask?: (statusId: string) => void;
|
|
14
|
+
onStatusAction?: (status: ClickUpStatus) => void;
|
|
15
|
+
onStatusClick?: (task: ClickUpTask) => void;
|
|
16
|
+
onAssigneeClick?: (task: ClickUpTask) => void;
|
|
17
|
+
onPriorityClick?: (task: ClickUpTask) => void;
|
|
18
|
+
onActionClick?: (task: ClickUpTask, e: React.MouseEvent) => void;
|
|
19
|
+
className?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare const TaskListView: React.FC<TaskListViewProps>;
|
|
22
|
+
export default TaskListView;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation } from "react-i18next";
|
|
3
|
+
import { cn } from "../../support/utils.js";
|
|
4
|
+
import { TaskGroup } from "../elements/TaskGroup.js";
|
|
5
|
+
import { ThemedText } from "../../components/ThemedText.js";
|
|
6
|
+
export const TaskListView = ({ tasks, statuses, phases = [], users = [], canEdit = true, collapsedGroupIds, onToggleGroup, onToggleComplete, onTaskClick, onAddTask, onStatusAction, onStatusClick, onAssigneeClick, onPriorityClick, onActionClick, className, }) => {
|
|
7
|
+
const { t: tr } = useTranslation("designSystem");
|
|
8
|
+
if (statuses.length === 0) {
|
|
9
|
+
return (_jsx("div", { className: "py-12 text-center text-dashboard-muted-foreground", children: _jsx(ThemedText, { variant: "body", as: "p", className: "text-dashboard-muted-foreground", children: tr("clickup.No_task_statuses_configured") }) }));
|
|
10
|
+
}
|
|
11
|
+
return (_jsx("div", { className: cn("cu-task-list", className), children: statuses.map((status) => {
|
|
12
|
+
const statusTasks = tasks.filter((t) => t.status_id === status.id);
|
|
13
|
+
return (_jsx(TaskGroup, { status: status, tasks: statusTasks, phases: phases, users: users, canEdit: canEdit, isExpanded: !collapsedGroupIds?.[status.id], onToggleExpand: onToggleGroup, onToggleComplete: onToggleComplete, onTaskClick: onTaskClick, onAddTask: onAddTask, onStatusAction: onStatusAction, onStatusClick: onStatusClick, onAssigneeClick: onAssigneeClick, onPriorityClick: onPriorityClick, onActionClick: onActionClick }, status.id));
|
|
14
|
+
}) }));
|
|
15
|
+
};
|
|
16
|
+
export default TaskListView;
|
|
17
|
+
//# sourceMappingURL=TaskListView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskListView.js","sourceRoot":"","sources":["../../../src/clickup/views/TaskListView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAOzC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAqBzD,MAAM,CAAC,MAAM,YAAY,GAAgC,CAAC,EACxD,KAAK,EACL,QAAQ,EACR,MAAM,GAAG,EAAE,EACX,KAAK,GAAG,EAAE,EACV,OAAO,GAAG,IAAI,EACd,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,cAAc,EACd,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,SAAS,GACV,EAAE,EAAE;IACH,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;IACjD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CACL,cAAK,SAAS,EAAC,mDAAmD,YAChE,KAAC,UAAU,IACT,OAAO,EAAC,MAAM,EACd,EAAE,EAAC,GAAG,EACN,SAAS,EAAC,iCAAiC,YAE1C,EAAE,CAAC,qCAAqC,CAAC,GAC/B,GACT,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,cAAc,EAAE,SAAS,CAAC,YAC1C,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACvB,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;YAEnE,OAAO,CACL,KAAC,SAAS,IAER,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAC3C,cAAc,EAAE,aAAa,EAC7B,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,IAfvB,MAAM,CAAC,EAAE,CAgBd,CACH,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import "../task-ui.css";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { ClickUpTask, ClickUpStatus, ClickUpPhase, ClickUpUser } from "../types";
|
|
4
|
+
export interface TaskTableViewProps {
|
|
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
|
+
onToggleComplete?: (task: ClickUpTask, checked: boolean) => void;
|
|
13
|
+
onTaskClick?: (task: ClickUpTask) => void;
|
|
14
|
+
onStatusClick?: (task: ClickUpTask) => void;
|
|
15
|
+
onAssigneeClick?: (task: ClickUpTask) => void;
|
|
16
|
+
onPriorityClick?: (task: ClickUpTask) => void;
|
|
17
|
+
onActionClick?: (task: ClickUpTask, e: React.MouseEvent) => void;
|
|
18
|
+
className?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare const TaskTableView: React.FC<TaskTableViewProps>;
|
|
21
|
+
export default TaskTableView;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import "../task-ui.css";
|
|
3
|
+
import { TaskTableHead } from "../elements/TaskTableHead.js";
|
|
4
|
+
import { useTranslation } from "react-i18next";
|
|
5
|
+
import React from "react";
|
|
6
|
+
import { ChevronDown } from "lucide-react";
|
|
7
|
+
import { cn } from "../../support/utils.js";
|
|
8
|
+
import { TaskRow } from "../elements/TaskRow.js";
|
|
9
|
+
import { TaskStatusPill } from "../common/TaskStatusPill.js";
|
|
10
|
+
import { ThemedText } from "../../components/ThemedText.js";
|
|
11
|
+
export const TaskTableView = ({ tasks, statuses = [], phases = [], users = [], canEdit = true, collapsedGroupIds, onToggleGroup, onToggleComplete, onTaskClick, onStatusClick, onAssigneeClick, onPriorityClick, onActionClick, className, }) => {
|
|
12
|
+
const { t: tr } = useTranslation("designSystem");
|
|
13
|
+
const statusMap = React.useMemo(() => {
|
|
14
|
+
const map = new Map();
|
|
15
|
+
statuses.forEach((s) => map.set(s.id, s));
|
|
16
|
+
return map;
|
|
17
|
+
}, [statuses]);
|
|
18
|
+
const phaseMap = React.useMemo(() => {
|
|
19
|
+
const map = new Map();
|
|
20
|
+
phases.forEach((p) => map.set(p.id, p));
|
|
21
|
+
return map;
|
|
22
|
+
}, [phases]);
|
|
23
|
+
const userMap = React.useMemo(() => {
|
|
24
|
+
const map = new Map();
|
|
25
|
+
users.forEach((u) => map.set(u.id, u));
|
|
26
|
+
return map;
|
|
27
|
+
}, [users]);
|
|
28
|
+
return (_jsx("div", { className: cn("cu-task-table-wrap", className), children: _jsxs("div", { className: "overflow-x-auto", children: [_jsxs("table", { className: "cu-task-table", children: [_jsx(TaskTableHead, {}), _jsx("tbody", { children: statuses.length > 0
|
|
29
|
+
? statuses.map((status) => {
|
|
30
|
+
const statusTasks = tasks.filter((t) => t.status_id === status.id);
|
|
31
|
+
const isExpanded = !collapsedGroupIds?.[status.id];
|
|
32
|
+
return (_jsxs(React.Fragment, { children: [_jsx("tr", { className: "bg-dashboard-secondary/35 border-b border-dashboard-border", children: _jsx("td", { colSpan: 6, className: "py-2 px-3", children: _jsxs("button", { type: "button", onClick: () => onToggleGroup?.(status.id), className: "inline-flex items-center gap-2 text-xs font-semibold text-dashboard-foreground hover:text-dashboard-primary transition-colors cursor-pointer", "aria-expanded": isExpanded, children: [_jsx(ChevronDown, { className: cn("size-3.5 text-dashboard-muted-foreground transition-transform duration-200", !isExpanded && "-rotate-90 rtl:rotate-90") }), _jsx(TaskStatusPill, { status: status, size: "sm" }), _jsxs("span", { className: "text-[11px] text-dashboard-muted-foreground font-normal", children: ["(", statusTasks.length, ")"] })] }) }) }), isExpanded &&
|
|
33
|
+
statusTasks.map((task) => (_jsx(TaskRow, { task: task, status: status, phase: task.phase_id
|
|
34
|
+
? phaseMap.get(task.phase_id)
|
|
35
|
+
: undefined, assignee: task.assignee_id
|
|
36
|
+
? userMap.get(task.assignee_id)
|
|
37
|
+
: undefined, canEdit: canEdit, onToggleComplete: onToggleComplete, onClick: onTaskClick, onStatusClick: onStatusClick, onAssigneeClick: onAssigneeClick, onPriorityClick: onPriorityClick, onActionClick: onActionClick }, task.id))), isExpanded && statusTasks.length === 0 && (_jsx("tr", { className: "border-b border-dashboard-border/50", children: _jsx("td", { colSpan: 6, className: "py-4 text-center text-xs text-dashboard-muted-foreground", children: tr("clickup.noStatusTasks", {
|
|
38
|
+
defaultValue: "No tasks in this status.",
|
|
39
|
+
}) }) }))] }, status.id));
|
|
40
|
+
})
|
|
41
|
+
: tasks.map((task) => (_jsx(TaskRow, { task: task, status: task.status ||
|
|
42
|
+
(task.status_id
|
|
43
|
+
? statusMap.get(task.status_id)
|
|
44
|
+
: undefined), phase: task.phase_id ? phaseMap.get(task.phase_id) : undefined, assignee: task.assignee ||
|
|
45
|
+
(task.assignee_id
|
|
46
|
+
? userMap.get(task.assignee_id)
|
|
47
|
+
: undefined), canEdit: canEdit, onToggleComplete: onToggleComplete, onClick: onTaskClick, onStatusClick: onStatusClick, onAssigneeClick: onAssigneeClick, onPriorityClick: onPriorityClick, onActionClick: onActionClick }, task.id))) })] }), tasks.length === 0 && statuses.length === 0 && (_jsx("div", { className: "py-12 text-center text-dashboard-muted-foreground", children: _jsx(ThemedText, { variant: "body", as: "p", className: "text-dashboard-muted-foreground", children: "No tasks match this view." }) }))] }) }));
|
|
48
|
+
};
|
|
49
|
+
export default TaskTableView;
|
|
50
|
+
//# sourceMappingURL=TaskTableView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskTableView.js","sourceRoot":"","sources":["../../../src/clickup/views/TaskTableView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface ActivityAttachment {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
size: string;
|
|
6
|
+
url?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ActivityReaction {
|
|
9
|
+
emoji: string;
|
|
10
|
+
count: number;
|
|
11
|
+
userReacted?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface ActivityFeedItem {
|
|
14
|
+
id: string;
|
|
15
|
+
type: "comment" | "audit" | "note";
|
|
16
|
+
author: {
|
|
17
|
+
name: string;
|
|
18
|
+
avatar?: string;
|
|
19
|
+
initials?: string;
|
|
20
|
+
isOnline?: boolean;
|
|
21
|
+
};
|
|
22
|
+
timestamp: string;
|
|
23
|
+
isEdited?: boolean;
|
|
24
|
+
content?: string;
|
|
25
|
+
attachments?: ActivityAttachment[];
|
|
26
|
+
reactions?: ActivityReaction[];
|
|
27
|
+
auditDetails?: {
|
|
28
|
+
action: string;
|
|
29
|
+
target?: string;
|
|
30
|
+
from?: React.ReactNode;
|
|
31
|
+
to?: React.ReactNode;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export interface ActivityFeedProps {
|
|
35
|
+
items: ActivityFeedItem[];
|
|
36
|
+
totalCount?: number;
|
|
37
|
+
newCount?: number;
|
|
38
|
+
onAddComment?: (content: string, isNote: boolean) => void;
|
|
39
|
+
onAddReaction?: (itemId: string, emoji: string) => void;
|
|
40
|
+
currentUser?: {
|
|
41
|
+
name: string;
|
|
42
|
+
avatar?: string;
|
|
43
|
+
initials?: string;
|
|
44
|
+
};
|
|
45
|
+
className?: string;
|
|
46
|
+
}
|
|
47
|
+
export declare function ActivityFeed({ items, totalCount, newCount, onAddComment, onAddReaction, currentUser, className, }: ActivityFeedProps): React.JSX.Element;
|
|
48
|
+
export default ActivityFeed;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../support/utils.js";
|
|
3
|
+
import { Activity, ChevronDown, ChevronRight, FileText, History, MessageSquare, Paperclip, Zap, } from "lucide-react";
|
|
4
|
+
import { useState } from "react";
|
|
5
|
+
import { Avatar, AvatarFallback, AvatarImage } from "./avatar.js";
|
|
6
|
+
import { Button } from "./button.js";
|
|
7
|
+
import { FileAttachmentChip } from "./FileAttachmentChip.js";
|
|
8
|
+
import { Textarea } from "./textarea.js";
|
|
9
|
+
export function ActivityFeed({ items, totalCount = 0, newCount = 0, onAddComment, onAddReaction, currentUser, className, }) {
|
|
10
|
+
const [isCollapsed, setIsCollapsed] = useState(false);
|
|
11
|
+
const [activeFilter, setActiveFilter] = useState("all");
|
|
12
|
+
const [commentText, setCommentText] = useState("");
|
|
13
|
+
const [isNoteMode, setIsNoteMode] = useState(false);
|
|
14
|
+
const filteredItems = items.filter((item) => {
|
|
15
|
+
if (activeFilter === "comments")
|
|
16
|
+
return item.type === "comment";
|
|
17
|
+
if (activeFilter === "audit")
|
|
18
|
+
return item.type === "audit";
|
|
19
|
+
if (activeFilter === "notes")
|
|
20
|
+
return item.type === "note";
|
|
21
|
+
return true;
|
|
22
|
+
});
|
|
23
|
+
const handleSendComment = () => {
|
|
24
|
+
if (!commentText.trim())
|
|
25
|
+
return;
|
|
26
|
+
onAddComment?.(commentText, isNoteMode);
|
|
27
|
+
setCommentText("");
|
|
28
|
+
};
|
|
29
|
+
return (_jsxs("div", { className: cn("rounded-xl bg-dashboard-card border border-dashboard-border overflow-hidden select-none", className), children: [_jsxs("div", { className: "flex items-center justify-between px-4 py-2.5 bg-dashboard-secondary/30 border-b border-dashboard-border", children: [_jsxs("button", { type: "button", onClick: () => setIsCollapsed(!isCollapsed), className: "flex items-center gap-2 text-xs font-semibold text-dashboard-foreground hover:text-dashboard-primary transition-colors cursor-pointer", children: [isCollapsed ? (_jsx(ChevronRight, { className: "w-3.5 h-3.5 text-dashboard-muted-foreground" })) : (_jsx(ChevronDown, { className: "w-3.5 h-3.5 text-dashboard-muted-foreground" })), _jsx(Activity, { className: "w-3.5 h-3.5 text-dashboard-primary" }), _jsx("span", { children: "Activity" }), _jsxs("span", { className: "font-mono text-[11px] text-dashboard-muted-foreground", children: [totalCount || items.length, newCount > 0 && ` + ${newCount}`] })] }), _jsxs("div", { className: "flex items-center gap-1", children: [_jsx("button", { type: "button", "aria-label": "Filter comments", onClick: () => setActiveFilter(activeFilter === "comments"
|
|
30
|
+
? "all"
|
|
31
|
+
: "comments"), className: cn("p-1.5 rounded-md text-xs transition-colors", activeFilter === "comments"
|
|
32
|
+
? "bg-dashboard-primary/10 text-dashboard-primary"
|
|
33
|
+
: "text-dashboard-muted-foreground hover:text-dashboard-foreground hover:bg-dashboard-secondary"), children: _jsx(MessageSquare, { className: "w-3.5 h-3.5" }) }), _jsx("button", { type: "button", "aria-label": "Filter audit history", onClick: () => setActiveFilter(activeFilter === "audit" ? "all" : "audit"), className: cn("p-1.5 rounded-md text-xs transition-colors", activeFilter === "audit"
|
|
34
|
+
? "bg-dashboard-primary/10 text-dashboard-primary"
|
|
35
|
+
: "text-dashboard-muted-foreground hover:text-dashboard-foreground hover:bg-dashboard-secondary"), children: _jsx(History, { className: "w-3.5 h-3.5" }) }), _jsx("button", { type: "button", "aria-label": "Filter notes", onClick: () => setActiveFilter(activeFilter === "notes" ? "all" : "notes"), className: cn("p-1.5 rounded-md text-xs transition-colors", activeFilter === "notes"
|
|
36
|
+
? "bg-dashboard-primary/10 text-dashboard-primary"
|
|
37
|
+
: "text-dashboard-muted-foreground hover:text-dashboard-foreground hover:bg-dashboard-secondary"), children: _jsx(FileText, { className: "w-3.5 h-3.5" }) })] })] }), !isCollapsed && (_jsxs("div", { className: "divide-y divide-dashboard-border/60", children: [_jsx("div", { className: "p-4 space-y-4 max-h-[460px] overflow-y-auto", children: filteredItems.length === 0 ? (_jsx("div", { className: "text-center py-6 text-xs text-dashboard-muted-foreground", children: "No activity recorded yet." })) : (filteredItems.map((item) => (_jsxs("div", { className: cn("flex gap-3 text-xs", item.type === "note" &&
|
|
38
|
+
"p-3 rounded-lg bg-amber-500/5 border border-amber-500/20"), children: [_jsxs("div", { className: "relative shrink-0", children: [_jsxs(Avatar, { size: "sm", className: "size-7", children: [item.author.avatar && (_jsx(AvatarImage, { src: item.author.avatar, alt: item.author.name })), _jsx(AvatarFallback, { className: "text-[10px]", children: item.author.initials ||
|
|
39
|
+
item.author.name.slice(0, 2) })] }), item.author.isOnline && (_jsx("span", { className: "absolute bottom-0 right-0 size-2 bg-emerald-500 rounded-full ring-2 ring-dashboard-card" }))] }), _jsxs("div", { className: "flex-1 space-y-1.5 min-w-0", children: [_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("span", { className: "font-semibold text-dashboard-foreground", children: item.author.name }), item.type === "note" && (_jsx("span", { className: "text-[10px] font-bold px-1.5 py-0.2 rounded bg-amber-500/20 text-amber-400", children: "Internal Note" }))] }), _jsxs("span", { className: "text-[11px] text-dashboard-muted-foreground", children: [item.timestamp, " ", item.isEdited && "(edited)"] })] }), item.type === "audit" &&
|
|
40
|
+
item.auditDetails && (_jsxs("div", { className: "text-dashboard-muted-foreground leading-relaxed", children: [_jsxs("span", { children: [item.auditDetails
|
|
41
|
+
.action, " "] }), item.auditDetails.from && (_jsxs("span", { children: ["from", " ", _jsx("span", { className: "text-dashboard-foreground", children: item
|
|
42
|
+
.auditDetails
|
|
43
|
+
.from }), " "] })), item.auditDetails.to && (_jsxs("span", { children: ["to", " ", _jsx("span", { className: "text-dashboard-foreground", children: item
|
|
44
|
+
.auditDetails
|
|
45
|
+
.to })] }))] })), item.content && (_jsx("p", { className: "text-dashboard-foreground/90 leading-relaxed break-words whitespace-pre-wrap", children: item.content })), item.attachments &&
|
|
46
|
+
item.attachments.length > 0 && (_jsx("div", { className: "space-y-1.5 pt-1", children: item.attachments.map((att) => (_jsx(FileAttachmentChip, { name: att.name, size: att.size, url: att.url }, att.id))) })), item.reactions &&
|
|
47
|
+
item.reactions.length > 0 && (_jsx("div", { className: "flex items-center gap-1.5 pt-1", children: item.reactions.map((reaction, idx) => (_jsxs("button", { type: "button", onClick: () => onAddReaction?.(item.id, reaction.emoji), className: cn("inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] border transition-colors", reaction.userReacted
|
|
48
|
+
? "bg-dashboard-primary/10 border-dashboard-primary/30 text-dashboard-primary"
|
|
49
|
+
: "bg-dashboard-secondary border-dashboard-border text-dashboard-muted-foreground hover:text-dashboard-foreground"), children: [_jsx("span", { children: reaction.emoji }), _jsx("span", { children: reaction.count })] }, idx))) }))] })] }, item.id)))) }), _jsx("div", { className: "p-3 bg-dashboard-secondary/20 space-y-2", children: _jsxs("div", { className: "flex gap-2.5", children: [_jsxs(Avatar, { size: "sm", className: "size-7 shrink-0", children: [currentUser?.avatar && (_jsx(AvatarImage, { src: currentUser.avatar, alt: currentUser.name })), _jsx(AvatarFallback, { className: "text-[10px]", children: currentUser?.initials || "ME" })] }), _jsxs("div", { className: "flex-1 space-y-2", children: [_jsx(Textarea, { value: commentText, onChange: (e) => setCommentText(e.target.value), placeholder: isNoteMode
|
|
50
|
+
? "Leave an internal note (only team visible)..."
|
|
51
|
+
: "Leave a comment or reply...", rows: 2, className: "text-xs bg-dashboard-background border-dashboard-border min-h-[56px] resize-none" }), _jsxs("div", { className: "flex items-center justify-between pt-1", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx(Button, { type: "button", variant: isNoteMode
|
|
52
|
+
? "default"
|
|
53
|
+
: "outline", size: "xs", onClick: () => setIsNoteMode(!isNoteMode), className: cn("h-7 rounded-full text-[11px]", isNoteMode
|
|
54
|
+
? "bg-amber-500 hover:bg-amber-600 text-white"
|
|
55
|
+
: "bg-dashboard-secondary border-dashboard-border text-dashboard-muted-foreground hover:text-dashboard-foreground"), children: isNoteMode
|
|
56
|
+
? "Note Mode Active"
|
|
57
|
+
: "Make a note" }), _jsx(Button, { type: "button", variant: "ghost", size: "icon-xs", "aria-label": "Attach file", className: "size-7 text-dashboard-muted-foreground hover:text-dashboard-foreground", children: _jsx(Paperclip, { className: "w-3.5 h-3.5" }) }), _jsx(Button, { type: "button", variant: "ghost", size: "icon-xs", "aria-label": "Insert quick macro", className: "size-7 text-dashboard-muted-foreground hover:text-dashboard-foreground", children: _jsx(Zap, { className: "w-3.5 h-3.5" }) })] }), _jsx(Button, { type: "button", variant: "default", size: "xs", disabled: !commentText.trim(), onClick: handleSendComment, className: "h-7 px-3.5 bg-dashboard-primary hover:bg-dashboard-primary/90 text-white rounded-full text-xs font-semibold", children: "Comment" })] })] })] }) })] }))] }));
|
|
58
|
+
}
|
|
59
|
+
export default ActivityFeed;
|
|
60
|
+
//# sourceMappingURL=ActivityFeed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActivityFeed.js","sourceRoot":"","sources":["../../src/components/ActivityFeed.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EACH,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,aAAa,EACb,SAAS,EACT,GAAG,GACN,MAAM,cAAc,CAAC;AACtB,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAmDtC,MAAM,UAAU,YAAY,CAAC,EACzB,KAAK,EACL,UAAU,GAAG,CAAC,EACd,QAAQ,GAAG,CAAC,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,SAAS,GACO;IAChB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAE9C,KAAK,CAAC,CAAC;IACT,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACxC,IAAI,YAAY,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;QAChE,IAAI,YAAY,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;QAC3D,IAAI,YAAY,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;QAC1D,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;YAAE,OAAO;QAChC,YAAY,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACxC,cAAc,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,OAAO,CACH,eACI,SAAS,EAAE,EAAE,CACT,yFAAyF,EACzF,SAAS,CACZ,aAGD,eAAK,SAAS,EAAC,0GAA0G,aACrH,kBACI,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,EAC3C,SAAS,EAAC,uIAAuI,aAEhJ,WAAW,CAAC,CAAC,CAAC,CACX,KAAC,YAAY,IAAC,SAAS,EAAC,6CAA6C,GAAG,CAC3E,CAAC,CAAC,CAAC,CACA,KAAC,WAAW,IAAC,SAAS,EAAC,6CAA6C,GAAG,CAC1E,EACD,KAAC,QAAQ,IAAC,SAAS,EAAC,oCAAoC,GAAG,EAC3D,sCAAqB,EACrB,gBAAM,SAAS,EAAC,uDAAuD,aAClE,UAAU,IAAI,KAAK,CAAC,MAAM,EAC1B,QAAQ,GAAG,CAAC,IAAI,MAAM,QAAQ,EAAE,IAC9B,IACF,EAGT,eAAK,SAAS,EAAC,yBAAyB,aACpC,iBACI,IAAI,EAAC,QAAQ,gBACF,iBAAiB,EAC5B,OAAO,EAAE,GAAG,EAAE,CACV,eAAe,CACX,YAAY,KAAK,UAAU;oCACvB,CAAC,CAAC,KAAK;oCACP,CAAC,CAAC,UAAU,CACnB,EAEL,SAAS,EAAE,EAAE,CACT,4CAA4C,EAC5C,YAAY,KAAK,UAAU;oCACvB,CAAC,CAAC,gDAAgD;oCAClD,CAAC,CAAC,8FAA8F,CACvG,YAED,KAAC,aAAa,IAAC,SAAS,EAAC,aAAa,GAAG,GACpC,EACT,iBACI,IAAI,EAAC,QAAQ,gBACF,sBAAsB,EACjC,OAAO,EAAE,GAAG,EAAE,CACV,eAAe,CACX,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAC7C,EAEL,SAAS,EAAE,EAAE,CACT,4CAA4C,EAC5C,YAAY,KAAK,OAAO;oCACpB,CAAC,CAAC,gDAAgD;oCAClD,CAAC,CAAC,8FAA8F,CACvG,YAED,KAAC,OAAO,IAAC,SAAS,EAAC,aAAa,GAAG,GAC9B,EACT,iBACI,IAAI,EAAC,QAAQ,gBACF,cAAc,EACzB,OAAO,EAAE,GAAG,EAAE,CACV,eAAe,CACX,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAC7C,EAEL,SAAS,EAAE,EAAE,CACT,4CAA4C,EAC5C,YAAY,KAAK,OAAO;oCACpB,CAAC,CAAC,gDAAgD;oCAClD,CAAC,CAAC,8FAA8F,CACvG,YAED,KAAC,QAAQ,IAAC,SAAS,EAAC,aAAa,GAAG,GAC/B,IACP,IACJ,EAGL,CAAC,WAAW,IAAI,CACb,eAAK,SAAS,EAAC,qCAAqC,aAEhD,cAAK,SAAS,EAAC,6CAA6C,YACvD,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC1B,cAAK,SAAS,EAAC,0DAA0D,0CAEnE,CACT,CAAC,CAAC,CAAC,CACA,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACxB,eAEI,SAAS,EAAE,EAAE,CACT,oBAAoB,EACpB,IAAI,CAAC,IAAI,KAAK,MAAM;gCAChB,0DAA0D,CACjE,aAGD,eAAK,SAAS,EAAC,mBAAmB,aAC9B,MAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,aAC/B,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CACnB,KAAC,WAAW,IACR,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EACvB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,GACvB,CACL,EACD,KAAC,cAAc,IAAC,SAAS,EAAC,aAAa,YAClC,IAAI,CAAC,MAAM,CAAC,QAAQ;wDACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAClB,CAAC,EACD,CAAC,CACJ,GACQ,IACZ,EACR,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CACrB,eAAM,SAAS,EAAC,yFAAyF,GAAG,CAC/G,IACC,EAGN,eAAK,SAAS,EAAC,4BAA4B,aACvC,eAAK,SAAS,EAAC,yCAAyC,aACpD,eAAK,SAAS,EAAC,2BAA2B,aACtC,eAAM,SAAS,EAAC,yCAAyC,YACpD,IAAI,CAAC,MAAM,CAAC,IAAI,GACd,EACN,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CACrB,eAAM,SAAS,EAAC,4EAA4E,8BAErF,CACV,IACC,EACN,gBAAM,SAAS,EAAC,6CAA6C,aACxD,IAAI,CAAC,SAAS,EAAE,GAAG,EACnB,IAAI,CAAC,QAAQ,IAAI,UAAU,IACzB,IACL,EAGL,IAAI,CAAC,IAAI,KAAK,OAAO;4CAClB,IAAI,CAAC,YAAY,IAAI,CACjB,eAAK,SAAS,EAAC,iDAAiD,aAC5D,2BAEQ,IAAI,CAAC,YAAY;6DACZ,MAAM,EACb,GAAG,IACF,EACN,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CACvB,mCACS,GAAG,EACR,eAAM,SAAS,EAAC,2BAA2B,YAEnC,IAAI;iEACC,YAAY;iEACZ,IAAI,GAEV,EAAC,GAAG,IACR,CACV,EACA,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CACrB,iCACO,GAAG,EACN,eAAM,SAAS,EAAC,2BAA2B,YAEnC,IAAI;iEACC,YAAY;iEACZ,EAAE,GAER,IACJ,CACV,IACC,CACT,EAGJ,IAAI,CAAC,OAAO,IAAI,CACb,YAAG,SAAS,EAAC,8EAA8E,YACtF,IAAI,CAAC,OAAO,GACb,CACP,EAGA,IAAI,CAAC,WAAW;4CACb,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAC3B,cAAK,SAAS,EAAC,kBAAkB,YAC5B,IAAI,CAAC,WAAW,CAAC,GAAG,CACjB,CAAC,GAAG,EAAE,EAAE,CAAC,CACL,KAAC,kBAAkB,IAEf,IAAI,EAAE,GAAG,CAAC,IAAI,EACd,IAAI,EAAE,GAAG,CAAC,IAAI,EACd,GAAG,EAAE,GAAG,CAAC,GAAG,IAHP,GAAG,CAAC,EAAE,CAIb,CACL,CACJ,GACC,CACT,EAGJ,IAAI,CAAC,SAAS;4CACX,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CACzB,cAAK,SAAS,EAAC,gCAAgC,YAC1C,IAAI,CAAC,SAAS,CAAC,GAAG,CACf,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,CACf,kBAEI,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CACV,aAAa,EAAE,CACX,IAAI,CAAC,EAAE,EACP,QAAQ,CAAC,KAAK,CACjB,EAEL,SAAS,EAAE,EAAE,CACT,8FAA8F,EAC9F,QAAQ,CAAC,WAAW;oDAChB,CAAC,CAAC,4EAA4E;oDAC9E,CAAC,CAAC,gHAAgH,CACzH,aAED,yBAEQ,QAAQ,CAAC,KAAK,GAEf,EACP,yBAEQ,QAAQ,CAAC,KAAK,GAEf,KAxBF,GAAG,CAyBH,CACZ,CACJ,GACC,CACT,IACH,KAlJD,IAAI,CAAC,EAAE,CAmJV,CACT,CAAC,CACL,GACC,EAGN,cAAK,SAAS,EAAC,yCAAyC,YACpD,eAAK,SAAS,EAAC,cAAc,aACzB,MAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,iBAAiB,aACxC,WAAW,EAAE,MAAM,IAAI,CACpB,KAAC,WAAW,IACR,GAAG,EAAE,WAAW,CAAC,MAAM,EACvB,GAAG,EAAE,WAAW,CAAC,IAAI,GACvB,CACL,EACD,KAAC,cAAc,IAAC,SAAS,EAAC,aAAa,YAClC,WAAW,EAAE,QAAQ,IAAI,IAAI,GACjB,IACZ,EAET,eAAK,SAAS,EAAC,kBAAkB,aAC7B,KAAC,QAAQ,IACL,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACZ,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAElC,WAAW,EACP,UAAU;gDACN,CAAC,CAAC,+CAA+C;gDACjD,CAAC,CAAC,6BAA6B,EAEvC,IAAI,EAAE,CAAC,EACP,SAAS,EAAC,kFAAkF,GAC9F,EAEF,eAAK,SAAS,EAAC,wCAAwC,aACnD,eAAK,SAAS,EAAC,2BAA2B,aACtC,KAAC,MAAM,IACH,IAAI,EAAC,QAAQ,EACb,OAAO,EACH,UAAU;gEACN,CAAC,CAAC,SAAS;gEACX,CAAC,CAAC,SAAS,EAEnB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE,CACV,aAAa,CAAC,CAAC,UAAU,CAAC,EAE9B,SAAS,EAAE,EAAE,CACT,8BAA8B,EAC9B,UAAU;gEACN,CAAC,CAAC,4CAA4C;gEAC9C,CAAC,CAAC,gHAAgH,CACzH,YAEA,UAAU;gEACP,CAAC,CAAC,kBAAkB;gEACpB,CAAC,CAAC,aAAa,GACd,EAET,KAAC,MAAM,IACH,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,SAAS,gBACH,aAAa,EACxB,SAAS,EAAC,wEAAwE,YAElF,KAAC,SAAS,IAAC,SAAS,EAAC,aAAa,GAAG,GAChC,EACT,KAAC,MAAM,IACH,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,SAAS,gBACH,oBAAoB,EAC/B,SAAS,EAAC,wEAAwE,YAElF,KAAC,GAAG,IAAC,SAAS,EAAC,aAAa,GAAG,GAC1B,IACP,EAEN,KAAC,MAAM,IACH,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,QAAQ,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,EAC7B,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAC,6GAA6G,wBAGlH,IACP,IACJ,IACJ,GACJ,IACJ,CACT,IACC,CACT,CAAC;AACN,CAAC;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../support/utils.js";
|
|
3
|
+
import { Pause, Play } from "lucide-react";
|
|
4
|
+
import { useEffect, useMemo, useRef, useState } from "react";
|
|
5
|
+
const formatTime = (time) => {
|
|
6
|
+
if (isNaN(time))
|
|
7
|
+
return "0:00";
|
|
8
|
+
const minutes = Math.floor(time / 60);
|
|
9
|
+
const seconds = Math.floor(time % 60);
|
|
10
|
+
return `${minutes}:${seconds < 10 ? "0" : ""}${seconds}`;
|
|
11
|
+
};
|
|
12
|
+
export const AudioPlayer = ({ src, variant = "message", className, }) => {
|
|
13
|
+
const audioRef = useRef(null);
|
|
14
|
+
const [isPlaying, setIsPlaying] = useState(false);
|
|
15
|
+
const [duration, setDuration] = useState(0);
|
|
16
|
+
const [currentTime, setCurrentTime] = useState(0);
|
|
17
|
+
const [playbackSpeed, setPlaybackSpeed] = useState(1);
|
|
18
|
+
const speeds = [1, 1.5, 2];
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
const audio = audioRef.current;
|
|
21
|
+
if (!audio)
|
|
22
|
+
return;
|
|
23
|
+
const setAudioData = () => {
|
|
24
|
+
setDuration(audio.duration || 0);
|
|
25
|
+
setCurrentTime(audio.currentTime || 0);
|
|
26
|
+
};
|
|
27
|
+
const setAudioTime = () => setCurrentTime(audio.currentTime || 0);
|
|
28
|
+
const onEnd = () => setIsPlaying(false);
|
|
29
|
+
audio.addEventListener("loadeddata", setAudioData);
|
|
30
|
+
audio.addEventListener("timeupdate", setAudioTime);
|
|
31
|
+
audio.addEventListener("ended", onEnd);
|
|
32
|
+
return () => {
|
|
33
|
+
audio.removeEventListener("loadeddata", setAudioData);
|
|
34
|
+
audio.removeEventListener("timeupdate", setAudioTime);
|
|
35
|
+
audio.removeEventListener("ended", onEnd);
|
|
36
|
+
};
|
|
37
|
+
}, []);
|
|
38
|
+
const togglePlayPause = () => {
|
|
39
|
+
if (!audioRef.current)
|
|
40
|
+
return;
|
|
41
|
+
if (isPlaying) {
|
|
42
|
+
audioRef.current.pause();
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
audioRef.current.play().catch(() => { });
|
|
46
|
+
}
|
|
47
|
+
setIsPlaying(!isPlaying);
|
|
48
|
+
};
|
|
49
|
+
const handleSpeedToggle = () => {
|
|
50
|
+
const nextSpeed = speeds[(speeds.indexOf(playbackSpeed) + 1) % speeds.length];
|
|
51
|
+
setPlaybackSpeed(nextSpeed);
|
|
52
|
+
if (audioRef.current) {
|
|
53
|
+
audioRef.current.playbackRate = nextSpeed;
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
// Deterministic waveform data based on audio source string
|
|
57
|
+
const waveData = useMemo(() => {
|
|
58
|
+
let hash = 0;
|
|
59
|
+
for (let i = 0; i < src.length; i++) {
|
|
60
|
+
hash = src.charCodeAt(i) + ((hash << 5) - hash);
|
|
61
|
+
}
|
|
62
|
+
const random = (seed) => {
|
|
63
|
+
const x = Math.sin(seed++) * 10000;
|
|
64
|
+
return x - Math.floor(x);
|
|
65
|
+
};
|
|
66
|
+
return Array.from({ length: 36 }, (_, i) => {
|
|
67
|
+
return Math.max(0.2, random(hash + i));
|
|
68
|
+
});
|
|
69
|
+
}, [src]);
|
|
70
|
+
const handleSeek = (e) => {
|
|
71
|
+
if (!audioRef.current || !duration)
|
|
72
|
+
return;
|
|
73
|
+
const rect = e.currentTarget.getBoundingClientRect();
|
|
74
|
+
const percent = Math.max(0, Math.min(1, (e.clientX - rect.left) / rect.width));
|
|
75
|
+
audioRef.current.currentTime = percent * duration;
|
|
76
|
+
setCurrentTime(percent * duration);
|
|
77
|
+
};
|
|
78
|
+
const isMessage = variant === "message";
|
|
79
|
+
return (_jsxs("div", { className: cn("flex items-center gap-3 rounded-2xl min-w-56 max-w-sm p-2 transition-all", isMessage
|
|
80
|
+
? "bg-dashboard-secondary/60 border border-dashboard-border"
|
|
81
|
+
: "bg-dashboard-primary/10 border border-dashboard-primary/30", className), children: [_jsx("audio", { ref: audioRef, src: src, preload: "metadata" }), _jsx("button", { onClick: togglePlayPause, type: "button", "aria-label": isPlaying ? "Pause audio" : "Play audio", className: cn("w-9 h-9 shrink-0 flex items-center justify-center rounded-full transition-all cursor-pointer", isMessage
|
|
82
|
+
? "bg-dashboard-primary text-white shadow-md hover:bg-dashboard-primary/90"
|
|
83
|
+
: "bg-dashboard-primary text-white shadow-sm hover:opacity-90"), children: isPlaying ? (_jsx(Pause, { className: "w-4 h-4 fill-current" })) : (_jsx(Play, { className: "w-4 h-4 fill-current ml-0.5" })) }), _jsxs("div", { className: "flex-1 flex flex-col gap-1 pr-1 min-w-0", children: [_jsx("div", { className: "w-full h-5 flex items-center gap-0.5 cursor-pointer group", onClick: handleSeek, children: waveData.map((val, i) => {
|
|
84
|
+
const isFilled = duration > 0
|
|
85
|
+
? i / waveData.length <= currentTime / duration
|
|
86
|
+
: false;
|
|
87
|
+
return (_jsx("div", { className: cn("flex-1 rounded-full transition-colors duration-75", isFilled
|
|
88
|
+
? "bg-dashboard-primary"
|
|
89
|
+
: isMessage
|
|
90
|
+
? "bg-dashboard-muted-foreground/30"
|
|
91
|
+
: "bg-dashboard-primary/25"), style: {
|
|
92
|
+
height: `${Math.max(20, val * 100)}%`,
|
|
93
|
+
} }, i));
|
|
94
|
+
}) }), _jsxs("div", { className: "flex items-center justify-between text-[10px] font-medium text-dashboard-muted-foreground", children: [_jsx("span", { children: formatTime(currentTime) }), _jsxs("div", { className: "flex items-center gap-1.5", children: [_jsxs("button", { onClick: handleSpeedToggle, type: "button", "aria-label": `Playback speed: ${playbackSpeed}x`, className: "opacity-80 hover:opacity-100 transition-opacity px-1.5 py-0.5 rounded-md font-bold text-[9px] bg-dashboard-secondary border border-dashboard-border text-dashboard-foreground cursor-pointer", children: [playbackSpeed, "x"] }), _jsx("span", { children: formatTime(duration) })] })] })] })] }));
|
|
95
|
+
};
|
|
96
|
+
//# sourceMappingURL=AudioPlayer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AudioPlayer.js","sourceRoot":"","sources":["../../src/components/AudioPlayer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface BulkActionBarProps {
|
|
3
|
+
selectedCount: number;
|
|
4
|
+
onClearSelection?: () => void;
|
|
5
|
+
children?: React.ReactNode;
|
|
6
|
+
className?: string;
|
|
7
|
+
label?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function BulkActionBar({ selectedCount, onClearSelection, children, className, label, }: BulkActionBarProps): React.JSX.Element;
|
|
10
|
+
export default BulkActionBar;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../support/utils.js";
|
|
3
|
+
import { AnimatePresence, motion } from "framer-motion";
|
|
4
|
+
import { X } from "lucide-react";
|
|
5
|
+
import { Button } from "./button.js";
|
|
6
|
+
export function BulkActionBar({ selectedCount, onClearSelection, children, className, label = "selected", }) {
|
|
7
|
+
return (_jsx(AnimatePresence, { children: selectedCount > 0 && (_jsxs(motion.div, { initial: { opacity: 0, y: 30, scale: 0.95 }, animate: { opacity: 1, y: 0, scale: 1 }, exit: { opacity: 0, y: 30, scale: 0.95 }, transition: { duration: 0.18, ease: "easeOut" }, className: cn("fixed bottom-6 left-1/2 -translate-x-1/2 z-50", "flex items-center gap-3 px-4 py-2", "bg-dashboard-card dark:bg-dashboard-card/95 border border-dashboard-border shadow-2xl backdrop-blur-md", "rounded-full text-xs text-dashboard-foreground select-none", className), role: "toolbar", "aria-label": "Bulk actions toolbar", children: [_jsxs("div", { className: "flex items-center gap-2 pl-1 pr-2 border-r border-dashboard-border", children: [_jsx("span", { className: "inline-flex items-center justify-center min-w-5 h-5 px-1.5 rounded-full bg-dashboard-primary text-white font-mono text-[11px] font-bold", children: selectedCount }), _jsx("span", { className: "text-dashboard-muted-foreground font-medium", children: label })] }), _jsx("div", { className: "flex items-center gap-1.5", children: children }), onClearSelection && (_jsx(Button, { type: "button", variant: "ghost", size: "icon-xs", onClick: onClearSelection, "aria-label": "Clear selection", className: "rounded-full text-dashboard-muted-foreground hover:text-dashboard-foreground hover:bg-dashboard-secondary shrink-0 size-7", children: _jsx(X, { className: "w-3.5 h-3.5" }) }))] })) }));
|
|
8
|
+
}
|
|
9
|
+
export default BulkActionBar;
|
|
10
|
+
//# sourceMappingURL=BulkActionBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BulkActionBar.js","sourceRoot":"","sources":["../../src/components/BulkActionBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEjC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAUlC,MAAM,UAAU,aAAa,CAAC,EAC1B,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,SAAS,EACT,KAAK,GAAG,UAAU,GACD;IACjB,OAAO,CACH,KAAC,eAAe,cACX,aAAa,GAAG,CAAC,IAAI,CAClB,MAAC,MAAM,CAAC,GAAG,IACP,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAC3C,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EACvC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EACxC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAC/C,SAAS,EAAE,EAAE,CACT,+CAA+C,EAC/C,mCAAmC,EACnC,wGAAwG,EACxG,4DAA4D,EAC5D,SAAS,CACZ,EACD,IAAI,EAAC,SAAS,gBACH,sBAAsB,aAGjC,eAAK,SAAS,EAAC,oEAAoE,aAC/E,eAAM,SAAS,EAAC,yIAAyI,YACpJ,aAAa,GACX,EACP,eAAM,SAAS,EAAC,6CAA6C,YACxD,KAAK,GACH,IACL,EAGN,cAAK,SAAS,EAAC,2BAA2B,YAAE,QAAQ,GAAO,EAG1D,gBAAgB,IAAI,CACjB,KAAC,MAAM,IACH,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,SAAS,EACd,OAAO,EAAE,gBAAgB,gBACd,iBAAiB,EAC5B,SAAS,EAAC,2HAA2H,YAErI,KAAC,CAAC,IAAC,SAAS,EAAC,aAAa,GAAG,GACxB,CACZ,IACQ,CAChB,GACa,CACrB,CAAC;AACN,CAAC;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface CarouselProps {
|
|
2
|
+
children: React.ReactNode[];
|
|
3
|
+
autoSlide?: boolean;
|
|
4
|
+
autoSlideInterval?: number;
|
|
5
|
+
className?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const Carousel: ({ children, autoSlide, autoSlideInterval, className, }: CarouselProps) => import("react").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { motion, useMotionValue } from "motion/react";
|
|
3
|
+
import { useEffect, useRef, useState } from "react";
|
|
4
|
+
export const Carousel = ({ children, autoSlide = true, autoSlideInterval = 5000, className = "", }) => {
|
|
5
|
+
const [currentIndex, setCurrentIndex] = useState(0);
|
|
6
|
+
const x = useMotionValue(0);
|
|
7
|
+
const containerRef = useRef(null);
|
|
8
|
+
const [isDragging, setIsDragging] = useState(false);
|
|
9
|
+
const next = () => {
|
|
10
|
+
setCurrentIndex((prev) => (prev + 1) % children.length);
|
|
11
|
+
};
|
|
12
|
+
const prev = () => {
|
|
13
|
+
setCurrentIndex((prev) => (prev - 1 + children.length) % children.length);
|
|
14
|
+
};
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (autoSlide && !isDragging) {
|
|
17
|
+
const interval = setInterval(next, autoSlideInterval);
|
|
18
|
+
return () => clearInterval(interval);
|
|
19
|
+
}
|
|
20
|
+
}, [currentIndex, autoSlide, autoSlideInterval, isDragging]);
|
|
21
|
+
const handleDragEnd = (_, { offset, velocity, }) => {
|
|
22
|
+
const swipe = offset.x + velocity.x * 50;
|
|
23
|
+
if (swipe < -50) {
|
|
24
|
+
next();
|
|
25
|
+
}
|
|
26
|
+
else if (swipe > 50) {
|
|
27
|
+
prev();
|
|
28
|
+
}
|
|
29
|
+
setIsDragging(false);
|
|
30
|
+
};
|
|
31
|
+
const handleDragStart = () => {
|
|
32
|
+
setIsDragging(true);
|
|
33
|
+
};
|
|
34
|
+
return (_jsxs("div", { className: `relative overflow-hidden ${className}`, ref: containerRef, children: [_jsx(motion.div, { className: "flex", animate: { x: `-${currentIndex * 100}%` }, transition: { type: "spring", stiffness: 300, damping: 30 }, drag: "x", dragConstraints: { left: 0, right: 0 }, dragElastic: 0.2, onDragStart: handleDragStart, onDragEnd: handleDragEnd, style: { x }, children: children.map((child, index) => (_jsx(motion.div, { className: "w-full shrink-0", initial: { opacity: 0, scale: 0.95 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.95 }, transition: { duration: 0.3 }, children: child }, index))) }), _jsx("div", { className: "flex justify-center items-center gap-1.5 mt-5", children: children.map((_, index) => (_jsx("button", { type: "button", "aria-label": `Go to slide ${index + 1}`, onClick: () => setCurrentIndex(index), className: `rounded-full transition-all cursor-pointer ${index === currentIndex
|
|
35
|
+
? "bg-dashboard-primary w-5 h-1.5"
|
|
36
|
+
: "bg-dashboard-secondary border border-dashboard-border hover:bg-dashboard-secondary/80 w-1.5 h-1.5"}` }, index))) })] }));
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=Carousel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Carousel.js","sourceRoot":"","sources":["../../src/components/Carousel.tsx"],"names":[],"mappings":"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"}
|