@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.
Files changed (751) hide show
  1. package/NOTICE.md +5 -0
  2. package/dist/activity/index.d.ts +2 -0
  3. package/dist/activity/index.js +3 -0
  4. package/dist/activity/index.js.map +1 -0
  5. package/dist/clickup/common/InlineNameTab.d.ts +11 -0
  6. package/dist/clickup/common/InlineNameTab.js +50 -0
  7. package/dist/clickup/common/InlineNameTab.js.map +1 -0
  8. package/dist/clickup/common/TaskAssigneeAvatar.d.ts +14 -0
  9. package/dist/clickup/common/TaskAssigneeAvatar.js +32 -0
  10. package/dist/clickup/common/TaskAssigneeAvatar.js.map +1 -0
  11. package/dist/clickup/common/TaskBreadcrumb.d.ts +11 -0
  12. package/dist/clickup/common/TaskBreadcrumb.js +11 -0
  13. package/dist/clickup/common/TaskBreadcrumb.js.map +1 -0
  14. package/dist/clickup/common/TaskCheck.d.ts +10 -0
  15. package/dist/clickup/common/TaskCheck.js +17 -0
  16. package/dist/clickup/common/TaskCheck.js.map +1 -0
  17. package/dist/clickup/common/TaskContextMenu.d.ts +10 -0
  18. package/dist/clickup/common/TaskContextMenu.js +22 -0
  19. package/dist/clickup/common/TaskContextMenu.js.map +1 -0
  20. package/dist/clickup/common/TaskIcon.d.ts +29 -0
  21. package/dist/clickup/common/TaskIcon.js +30 -0
  22. package/dist/clickup/common/TaskIcon.js.map +1 -0
  23. package/dist/clickup/common/TaskPriorityBadge.d.ts +11 -0
  24. package/dist/clickup/common/TaskPriorityBadge.js +11 -0
  25. package/dist/clickup/common/TaskPriorityBadge.js.map +1 -0
  26. package/dist/clickup/common/TaskRowActionMenu.d.ts +6 -0
  27. package/dist/clickup/common/TaskRowActionMenu.js +10 -0
  28. package/dist/clickup/common/TaskRowActionMenu.js.map +1 -0
  29. package/dist/clickup/common/TaskStatusPill.d.ts +12 -0
  30. package/dist/clickup/common/TaskStatusPill.js +24 -0
  31. package/dist/clickup/common/TaskStatusPill.js.map +1 -0
  32. package/dist/clickup/common/WorkspaceButton.d.ts +3 -0
  33. package/dist/clickup/common/WorkspaceButton.js +8 -0
  34. package/dist/clickup/common/WorkspaceButton.js.map +1 -0
  35. package/dist/clickup/common/WorkspaceHeader.d.ts +9 -0
  36. package/dist/clickup/common/WorkspaceHeader.js +7 -0
  37. package/dist/clickup/common/WorkspaceHeader.js.map +1 -0
  38. package/dist/clickup/common/WorkspaceMenus.d.ts +17 -0
  39. package/dist/clickup/common/WorkspaceMenus.js +15 -0
  40. package/dist/clickup/common/WorkspaceMenus.js.map +1 -0
  41. package/dist/clickup/common/WorkspaceMessage.d.ts +7 -0
  42. package/dist/clickup/common/WorkspaceMessage.js +6 -0
  43. package/dist/clickup/common/WorkspaceMessage.js.map +1 -0
  44. package/dist/clickup/common/WorkspaceMetricStrip.d.ts +10 -0
  45. package/dist/clickup/common/WorkspaceMetricStrip.js +6 -0
  46. package/dist/clickup/common/WorkspaceMetricStrip.js.map +1 -0
  47. package/dist/clickup/common/WorkspacePanel.d.ts +7 -0
  48. package/dist/clickup/common/WorkspacePanel.js +7 -0
  49. package/dist/clickup/common/WorkspacePanel.js.map +1 -0
  50. package/dist/clickup/common/WorkspaceSelect.d.ts +5 -0
  51. package/dist/clickup/common/WorkspaceSelect.js +64 -0
  52. package/dist/clickup/common/WorkspaceSelect.js.map +1 -0
  53. package/dist/clickup/common/WorkspaceTable.d.ts +16 -0
  54. package/dist/clickup/common/WorkspaceTable.js +7 -0
  55. package/dist/clickup/common/WorkspaceTable.js.map +1 -0
  56. package/dist/clickup/dialogs/ClickUpCommentComposer.d.ts +9 -0
  57. package/dist/clickup/dialogs/ClickUpCommentComposer.js +35 -0
  58. package/dist/clickup/dialogs/ClickUpCommentComposer.js.map +1 -0
  59. package/dist/clickup/dialogs/ClickUpTaskActions.d.ts +8 -0
  60. package/dist/clickup/dialogs/ClickUpTaskActions.js +10 -0
  61. package/dist/clickup/dialogs/ClickUpTaskActions.js.map +1 -0
  62. package/dist/clickup/dialogs/ClickUpTaskAssignee.d.ts +7 -0
  63. package/dist/clickup/dialogs/ClickUpTaskAssignee.js +12 -0
  64. package/dist/clickup/dialogs/ClickUpTaskAssignee.js.map +1 -0
  65. package/dist/clickup/dialogs/ClickUpTaskDescription.d.ts +12 -0
  66. package/dist/clickup/dialogs/ClickUpTaskDescription.js +12 -0
  67. package/dist/clickup/dialogs/ClickUpTaskDescription.js.map +1 -0
  68. package/dist/clickup/dialogs/ClickUpTaskDialog.d.ts +27 -0
  69. package/dist/clickup/dialogs/ClickUpTaskDialog.js +35 -0
  70. package/dist/clickup/dialogs/ClickUpTaskDialog.js.map +1 -0
  71. package/dist/clickup/dialogs/ClickUpTaskDiscussion.d.ts +11 -0
  72. package/dist/clickup/dialogs/ClickUpTaskDiscussion.js +29 -0
  73. package/dist/clickup/dialogs/ClickUpTaskDiscussion.js.map +1 -0
  74. package/dist/clickup/dialogs/ClickUpTaskMain.d.ts +24 -0
  75. package/dist/clickup/dialogs/ClickUpTaskMain.js +26 -0
  76. package/dist/clickup/dialogs/ClickUpTaskMain.js.map +1 -0
  77. package/dist/clickup/dialogs/ClickUpTaskProperties.d.ts +17 -0
  78. package/dist/clickup/dialogs/ClickUpTaskProperties.js +26 -0
  79. package/dist/clickup/dialogs/ClickUpTaskProperties.js.map +1 -0
  80. package/dist/clickup/elements/TaskCalendarCell.d.ts +14 -0
  81. package/dist/clickup/elements/TaskCalendarCell.js +19 -0
  82. package/dist/clickup/elements/TaskCalendarCell.js.map +1 -0
  83. package/dist/clickup/elements/TaskCard.d.ts +16 -0
  84. package/dist/clickup/elements/TaskCard.js +51 -0
  85. package/dist/clickup/elements/TaskCard.js.map +1 -0
  86. package/dist/clickup/elements/TaskGroup.d.ts +24 -0
  87. package/dist/clickup/elements/TaskGroup.js +50 -0
  88. package/dist/clickup/elements/TaskGroup.js.map +1 -0
  89. package/dist/clickup/elements/TaskRow.d.ts +19 -0
  90. package/dist/clickup/elements/TaskRow.js +60 -0
  91. package/dist/clickup/elements/TaskRow.js.map +1 -0
  92. package/dist/clickup/elements/TaskTableHead.d.ts +1 -0
  93. package/dist/clickup/elements/TaskTableHead.js +15 -0
  94. package/dist/clickup/elements/TaskTableHead.js.map +1 -0
  95. package/dist/clickup/elements/TaskTimelineRow.d.ts +12 -0
  96. package/dist/clickup/elements/TaskTimelineRow.js +16 -0
  97. package/dist/clickup/elements/TaskTimelineRow.js.map +1 -0
  98. package/dist/clickup/index.d.ts +41 -0
  99. package/dist/clickup/index.js +48 -0
  100. package/dist/clickup/index.js.map +1 -0
  101. package/dist/clickup/task-ui.css +864 -0
  102. package/dist/clickup/toolbar/TaskToolbar.d.ts +20 -0
  103. package/dist/clickup/toolbar/TaskToolbar.js +16 -0
  104. package/dist/clickup/toolbar/TaskToolbar.js.map +1 -0
  105. package/dist/clickup/toolbar/TaskViewPicker.d.ts +8 -0
  106. package/dist/clickup/toolbar/TaskViewPicker.js +48 -0
  107. package/dist/clickup/toolbar/TaskViewPicker.js.map +1 -0
  108. package/dist/clickup/toolbar/TaskViewSwitcher.d.ts +21 -0
  109. package/dist/clickup/toolbar/TaskViewSwitcher.js +55 -0
  110. package/dist/clickup/toolbar/TaskViewSwitcher.js.map +1 -0
  111. package/dist/clickup/types.d.ts +66 -0
  112. package/dist/clickup/types.js +2 -0
  113. package/dist/clickup/types.js.map +1 -0
  114. package/dist/clickup/views/TaskBoardView.d.ts +21 -0
  115. package/dist/clickup/views/TaskBoardView.js +75 -0
  116. package/dist/clickup/views/TaskBoardView.js.map +1 -0
  117. package/dist/clickup/views/TaskCalendarView.d.ts +12 -0
  118. package/dist/clickup/views/TaskCalendarView.js +197 -0
  119. package/dist/clickup/views/TaskCalendarView.js.map +1 -0
  120. package/dist/clickup/views/TaskGanttView.d.ts +12 -0
  121. package/dist/clickup/views/TaskGanttView.js +64 -0
  122. package/dist/clickup/views/TaskGanttView.js.map +1 -0
  123. package/dist/clickup/views/TaskListView.d.ts +22 -0
  124. package/dist/clickup/views/TaskListView.js +17 -0
  125. package/dist/clickup/views/TaskListView.js.map +1 -0
  126. package/dist/clickup/views/TaskTableView.d.ts +21 -0
  127. package/dist/clickup/views/TaskTableView.js +50 -0
  128. package/dist/clickup/views/TaskTableView.js.map +1 -0
  129. package/dist/components/ActivityFeed.d.ts +48 -0
  130. package/dist/components/ActivityFeed.js +60 -0
  131. package/dist/components/ActivityFeed.js.map +1 -0
  132. package/dist/components/AudioPlayer.d.ts +8 -0
  133. package/dist/components/AudioPlayer.js +96 -0
  134. package/dist/components/AudioPlayer.js.map +1 -0
  135. package/dist/components/BulkActionBar.d.ts +10 -0
  136. package/dist/components/BulkActionBar.js +10 -0
  137. package/dist/components/BulkActionBar.js.map +1 -0
  138. package/dist/components/Carousel.d.ts +8 -0
  139. package/dist/components/Carousel.js +38 -0
  140. package/dist/components/Carousel.js.map +1 -0
  141. package/dist/components/ChatBot.d.ts +6 -0
  142. package/dist/components/ChatBot.js +52 -0
  143. package/dist/components/ChatBot.js.map +1 -0
  144. package/dist/components/CheckboxCustom.d.ts +9 -0
  145. package/dist/components/CheckboxCustom.js +42 -0
  146. package/dist/components/CheckboxCustom.js.map +1 -0
  147. package/dist/components/ClickUpTaskModal.d.ts +36 -0
  148. package/dist/components/ClickUpTaskModal.js +180 -0
  149. package/dist/components/ClickUpTaskModal.js.map +1 -0
  150. package/dist/components/ConditionBuilder.d.ts +28 -0
  151. package/dist/components/ConditionBuilder.js +63 -0
  152. package/dist/components/ConditionBuilder.js.map +1 -0
  153. package/dist/components/ConfirmDialog.d.ts +21 -0
  154. package/dist/components/ConfirmDialog.js +51 -0
  155. package/dist/components/ConfirmDialog.js.map +1 -0
  156. package/dist/components/DataCard.d.ts +43 -0
  157. package/dist/components/DataCard.js +30 -0
  158. package/dist/components/DataCard.js.map +1 -0
  159. package/dist/components/DataTable.d.ts +107 -0
  160. package/dist/components/DataTable.js +153 -0
  161. package/dist/components/DataTable.js.map +1 -0
  162. package/dist/components/DatePicker.d.ts +16 -0
  163. package/dist/components/DatePicker.js +184 -0
  164. package/dist/components/DatePicker.js.map +1 -0
  165. package/dist/components/EmptyState.d.ts +26 -0
  166. package/dist/components/EmptyState.js +37 -0
  167. package/dist/components/EmptyState.js.map +1 -0
  168. package/dist/components/Error.d.ts +12 -0
  169. package/dist/components/Error.js +41 -0
  170. package/dist/components/Error.js.map +1 -0
  171. package/dist/components/ErrorState.d.ts +10 -0
  172. package/dist/components/ErrorState.js +53 -0
  173. package/dist/components/ErrorState.js.map +1 -0
  174. package/dist/components/FileAttachmentChip.d.ts +10 -0
  175. package/dist/components/FileAttachmentChip.js +21 -0
  176. package/dist/components/FileAttachmentChip.js.map +1 -0
  177. package/dist/components/FilterConditionChip.d.ts +10 -0
  178. package/dist/components/FilterConditionChip.js +11 -0
  179. package/dist/components/FilterConditionChip.js.map +1 -0
  180. package/dist/components/GalleryCarouselDialog.d.ts +14 -0
  181. package/dist/components/GalleryCarouselDialog.js +167 -0
  182. package/dist/components/GalleryCarouselDialog.js.map +1 -0
  183. package/dist/components/HierarchicalSelectionMenu.d.ts +21 -0
  184. package/dist/components/HierarchicalSelectionMenu.js +168 -0
  185. package/dist/components/HierarchicalSelectionMenu.js.map +1 -0
  186. package/dist/components/InfiniteSelect.d.ts +44 -0
  187. package/dist/components/InfiniteSelect.js +121 -0
  188. package/dist/components/InfiniteSelect.js.map +1 -0
  189. package/dist/components/LoadingState.d.ts +28 -0
  190. package/dist/components/LoadingState.js +24 -0
  191. package/dist/components/LoadingState.js.map +1 -0
  192. package/dist/components/LucidIconRender.d.ts +9 -0
  193. package/dist/components/LucidIconRender.js +7 -0
  194. package/dist/components/LucidIconRender.js.map +1 -0
  195. package/dist/components/MasterDetailLayout.d.ts +67 -0
  196. package/dist/components/MasterDetailLayout.js +79 -0
  197. package/dist/components/MasterDetailLayout.js.map +1 -0
  198. package/dist/components/PinnedAttributeRow.d.ts +12 -0
  199. package/dist/components/PinnedAttributeRow.js +11 -0
  200. package/dist/components/PinnedAttributeRow.js.map +1 -0
  201. package/dist/components/PopUp.d.ts +11 -0
  202. package/dist/components/PopUp.js +83 -0
  203. package/dist/components/PopUp.js.map +1 -0
  204. package/dist/components/PrioritySignal.d.ts +10 -0
  205. package/dist/components/PrioritySignal.js +54 -0
  206. package/dist/components/PrioritySignal.js.map +1 -0
  207. package/dist/components/RichTextEditor.d.ts +7 -0
  208. package/dist/components/RichTextEditor.js +252 -0
  209. package/dist/components/RichTextEditor.js.map +1 -0
  210. package/dist/components/SLACountdown.d.ts +15 -0
  211. package/dist/components/SLACountdown.js +26 -0
  212. package/dist/components/SLACountdown.js.map +1 -0
  213. package/dist/components/StatusBadge.d.ts +14 -0
  214. package/dist/components/StatusBadge.js +55 -0
  215. package/dist/components/StatusBadge.js.map +1 -0
  216. package/dist/components/StatusCards.d.ts +12 -0
  217. package/dist/components/StatusCards.js +12 -0
  218. package/dist/components/StatusCards.js.map +1 -0
  219. package/dist/components/StatusProgressBar.d.ts +18 -0
  220. package/dist/components/StatusProgressBar.js +50 -0
  221. package/dist/components/StatusProgressBar.js.map +1 -0
  222. package/dist/components/TableActions.d.ts +26 -0
  223. package/dist/components/TableActions.js +49 -0
  224. package/dist/components/TableActions.js.map +1 -0
  225. package/dist/components/TaskDetailsModal.d.ts +3 -0
  226. package/dist/components/TaskDetailsModal.js +8 -0
  227. package/dist/components/TaskDetailsModal.js.map +1 -0
  228. package/dist/components/ThemedText.d.ts +24 -0
  229. package/dist/components/ThemedText.js +103 -0
  230. package/dist/components/ThemedText.js.map +1 -0
  231. package/dist/components/TicketWorkspaceLayout.d.ts +11 -0
  232. package/dist/components/TicketWorkspaceLayout.js +7 -0
  233. package/dist/components/TicketWorkspaceLayout.js.map +1 -0
  234. package/dist/components/TimePicker.d.ts +15 -0
  235. package/dist/components/TimePicker.js +96 -0
  236. package/dist/components/TimePicker.js.map +1 -0
  237. package/dist/components/Tooltip.d.ts +19 -0
  238. package/dist/components/Tooltip.js +75 -0
  239. package/dist/components/Tooltip.js.map +1 -0
  240. package/dist/components/TreeView.d.ts +33 -0
  241. package/dist/components/TreeView.js +55 -0
  242. package/dist/components/TreeView.js.map +1 -0
  243. package/dist/components/accordion.d.ts +6 -0
  244. package/dist/components/accordion.js +18 -0
  245. package/dist/components/accordion.js.map +1 -0
  246. package/dist/components/avatar.d.ts +11 -0
  247. package/dist/components/avatar.js +23 -0
  248. package/dist/components/avatar.js.map +1 -0
  249. package/dist/components/badge.d.ts +12 -0
  250. package/dist/components/badge.js +44 -0
  251. package/dist/components/badge.js.map +1 -0
  252. package/dist/components/button.d.ts +15 -0
  253. package/dist/components/button.js +47 -0
  254. package/dist/components/button.js.map +1 -0
  255. package/dist/components/card.d.ts +11 -0
  256. package/dist/components/card.js +25 -0
  257. package/dist/components/card.js.map +1 -0
  258. package/dist/components/context menu core/context-menu.d.ts +28 -0
  259. package/dist/components/context menu core/context-menu.js +91 -0
  260. package/dist/components/context menu core/context-menu.js.map +1 -0
  261. package/dist/components/context menu core/contextMenuAdvanced.d.ts +46 -0
  262. package/dist/components/context menu core/contextMenuAdvanced.js +34 -0
  263. package/dist/components/context menu core/contextMenuAdvanced.js.map +1 -0
  264. package/dist/components/dialog.d.ts +18 -0
  265. package/dist/components/dialog.js +42 -0
  266. package/dist/components/dialog.js.map +1 -0
  267. package/dist/components/dropdown-menu.d.ts +29 -0
  268. package/dist/components/dropdown-menu.js +51 -0
  269. package/dist/components/dropdown-menu.js.map +1 -0
  270. package/dist/components/filter/AdvancedFilters.d.ts +14 -0
  271. package/dist/components/filter/AdvancedFilters.js +220 -0
  272. package/dist/components/filter/AdvancedFilters.js.map +1 -0
  273. package/dist/components/filter/Filter.d.ts +48 -0
  274. package/dist/components/filter/Filter.js +153 -0
  275. package/dist/components/filter/Filter.js.map +1 -0
  276. package/dist/components/filter/FilterButton.d.ts +10 -0
  277. package/dist/components/filter/FilterButton.js +9 -0
  278. package/dist/components/filter/FilterButton.js.map +1 -0
  279. package/dist/components/filter/NormalFilters.d.ts +14 -0
  280. package/dist/components/filter/NormalFilters.js +40 -0
  281. package/dist/components/filter/NormalFilters.js.map +1 -0
  282. package/dist/components/filter/index.d.ts +5 -0
  283. package/dist/components/filter/index.js +6 -0
  284. package/dist/components/filter/index.js.map +1 -0
  285. package/dist/components/filter/types.d.ts +32 -0
  286. package/dist/components/filter/types.js +2 -0
  287. package/dist/components/filter/types.js.map +1 -0
  288. package/dist/components/form-error.d.ts +42 -0
  289. package/dist/components/form-error.js +103 -0
  290. package/dist/components/form-error.js.map +1 -0
  291. package/dist/components/icons.d.ts +19 -0
  292. package/dist/components/icons.js +21 -0
  293. package/dist/components/icons.js.map +1 -0
  294. package/dist/components/image.d.ts +12 -0
  295. package/dist/components/image.js +18 -0
  296. package/dist/components/image.js.map +1 -0
  297. package/dist/components/index.d.ts +59 -0
  298. package/dist/components/index.js +60 -0
  299. package/dist/components/index.js.map +1 -0
  300. package/dist/components/input.d.ts +22 -0
  301. package/dist/components/input.js +102 -0
  302. package/dist/components/input.js.map +1 -0
  303. package/dist/components/label.d.ts +7 -0
  304. package/dist/components/label.js +8 -0
  305. package/dist/components/label.js.map +1 -0
  306. package/dist/components/layout/FeatureLayout.d.ts +131 -0
  307. package/dist/components/layout/FeatureLayout.js +113 -0
  308. package/dist/components/layout/FeatureLayout.js.map +1 -0
  309. package/dist/components/layout/FeatureLayoutExportButton.d.ts +10 -0
  310. package/dist/components/layout/FeatureLayoutExportButton.js +21 -0
  311. package/dist/components/layout/FeatureLayoutExportButton.js.map +1 -0
  312. package/dist/components/layout/FeatureLayoutTabs.d.ts +36 -0
  313. package/dist/components/layout/FeatureLayoutTabs.js +192 -0
  314. package/dist/components/layout/FeatureLayoutTabs.js.map +1 -0
  315. package/dist/components/layout/kanban/FeatureLayoutKanban.d.ts +6 -0
  316. package/dist/components/layout/kanban/FeatureLayoutKanban.js +195 -0
  317. package/dist/components/layout/kanban/FeatureLayoutKanban.js.map +1 -0
  318. package/dist/components/layout/kanban/KanbanCard.d.ts +12 -0
  319. package/dist/components/layout/kanban/KanbanCard.js +43 -0
  320. package/dist/components/layout/kanban/KanbanCard.js.map +1 -0
  321. package/dist/components/layout/kanban/KanbanColumn.d.ts +23 -0
  322. package/dist/components/layout/kanban/KanbanColumn.js +30 -0
  323. package/dist/components/layout/kanban/KanbanColumn.js.map +1 -0
  324. package/dist/components/layout/kanban/KanbanToolbar.d.ts +11 -0
  325. package/dist/components/layout/kanban/KanbanToolbar.js +10 -0
  326. package/dist/components/layout/kanban/KanbanToolbar.js.map +1 -0
  327. package/dist/components/layout/kanban/index.d.ts +6 -0
  328. package/dist/components/layout/kanban/index.js +7 -0
  329. package/dist/components/layout/kanban/index.js.map +1 -0
  330. package/dist/components/layout/kanban/types.d.ts +67 -0
  331. package/dist/components/layout/kanban/types.js +2 -0
  332. package/dist/components/layout/kanban/types.js.map +1 -0
  333. package/dist/components/popover.d.ts +11 -0
  334. package/dist/components/popover.js +20 -0
  335. package/dist/components/popover.js.map +1 -0
  336. package/dist/components/react-flow/FlowGraphHeader.d.ts +2 -0
  337. package/dist/components/react-flow/FlowGraphHeader.js +10 -0
  338. package/dist/components/react-flow/FlowGraphHeader.js.map +1 -0
  339. package/dist/components/react-flow/GlowEdge.d.ts +3 -0
  340. package/dist/components/react-flow/GlowEdge.js +100 -0
  341. package/dist/components/react-flow/GlowEdge.js.map +1 -0
  342. package/dist/components/react-flow/ReactFlowCanvas.d.ts +7 -0
  343. package/dist/components/react-flow/ReactFlowCanvas.js +44 -0
  344. package/dist/components/react-flow/ReactFlowCanvas.js.map +1 -0
  345. package/dist/components/react-flow/RelationshipFlow.d.ts +2 -0
  346. package/dist/components/react-flow/RelationshipFlow.js +9 -0
  347. package/dist/components/react-flow/RelationshipFlow.js.map +1 -0
  348. package/dist/components/react-flow/TreeFlowLayout.d.ts +29 -0
  349. package/dist/components/react-flow/TreeFlowLayout.js +14 -0
  350. package/dist/components/react-flow/TreeFlowLayout.js.map +1 -0
  351. package/dist/components/react-flow/edges.d.ts +8 -0
  352. package/dist/components/react-flow/edges.js +21 -0
  353. package/dist/components/react-flow/edges.js.map +1 -0
  354. package/dist/components/react-flow/index.d.ts +9 -0
  355. package/dist/components/react-flow/index.js +10 -0
  356. package/dist/components/react-flow/index.js.map +1 -0
  357. package/dist/components/react-flow/layout.d.ts +5 -0
  358. package/dist/components/react-flow/layout.js +11 -0
  359. package/dist/components/react-flow/layout.js.map +1 -0
  360. package/dist/components/react-flow/types.d.ts +82 -0
  361. package/dist/components/react-flow/types.js +6 -0
  362. package/dist/components/react-flow/types.js.map +1 -0
  363. package/dist/components/react-flow/useFlowGraph.d.ts +3 -0
  364. package/dist/components/react-flow/useFlowGraph.js +22 -0
  365. package/dist/components/react-flow/useFlowGraph.js.map +1 -0
  366. package/dist/components/react-flow/useFlowGraphSync.d.ts +4 -0
  367. package/dist/components/react-flow/useFlowGraphSync.js +43 -0
  368. package/dist/components/react-flow/useFlowGraphSync.js.map +1 -0
  369. package/dist/components/select.d.ts +23 -0
  370. package/dist/components/select.js +109 -0
  371. package/dist/components/select.js.map +1 -0
  372. package/dist/components/sonner.d.ts +4 -0
  373. package/dist/components/sonner.js +29 -0
  374. package/dist/components/sonner.js.map +1 -0
  375. package/dist/components/stepper.d.ts +12 -0
  376. package/dist/components/stepper.js +22 -0
  377. package/dist/components/stepper.js.map +1 -0
  378. package/dist/components/switch.d.ts +5 -0
  379. package/dist/components/switch.js +16 -0
  380. package/dist/components/switch.js.map +1 -0
  381. package/dist/components/table.d.ts +52 -0
  382. package/dist/components/table.js +112 -0
  383. package/dist/components/table.js.map +1 -0
  384. package/dist/components/tabs.d.ts +10 -0
  385. package/dist/components/tabs.js +29 -0
  386. package/dist/components/tabs.js.map +1 -0
  387. package/dist/components/textarea.d.ts +6 -0
  388. package/dist/components/textarea.js +17 -0
  389. package/dist/components/textarea.js.map +1 -0
  390. package/dist/condition-builder/index.d.ts +2 -0
  391. package/dist/condition-builder/index.js +3 -0
  392. package/dist/condition-builder/index.js.map +1 -0
  393. package/dist/context-menu/index.d.ts +2 -0
  394. package/dist/context-menu/index.js +3 -0
  395. package/dist/context-menu/index.js.map +1 -0
  396. package/dist/dropdown/SearchDropdown.d.ts +19 -0
  397. package/dist/dropdown/SearchDropdown.js +27 -0
  398. package/dist/dropdown/SearchDropdown.js.map +1 -0
  399. package/dist/dropdown/index.d.ts +2 -0
  400. package/dist/dropdown/index.js +3 -0
  401. package/dist/dropdown/index.js.map +1 -0
  402. package/dist/editor.d.ts +1 -0
  403. package/dist/editor.js +2 -0
  404. package/dist/editor.js.map +1 -0
  405. package/dist/feedback/index.d.ts +6 -0
  406. package/dist/feedback/index.js +7 -0
  407. package/dist/feedback/index.js.map +1 -0
  408. package/dist/flow.d.ts +1 -0
  409. package/dist/flow.js +2 -0
  410. package/dist/flow.js.map +1 -0
  411. package/dist/hooks/index.d.ts +3 -0
  412. package/dist/hooks/index.js +4 -0
  413. package/dist/hooks/index.js.map +1 -0
  414. package/dist/hooks/useContextMenuActions.d.ts +16 -0
  415. package/dist/hooks/useContextMenuActions.js +35 -0
  416. package/dist/hooks/useContextMenuActions.js.map +1 -0
  417. package/dist/hooks/useFeatureLayout.d.ts +14 -0
  418. package/dist/hooks/useFeatureLayout.js +21 -0
  419. package/dist/hooks/useFeatureLayout.js.map +1 -0
  420. package/dist/hooks/useTableActions.d.ts +46 -0
  421. package/dist/hooks/useTableActions.js +71 -0
  422. package/dist/hooks/useTableActions.js.map +1 -0
  423. package/dist/index.d.ts +19 -0
  424. package/dist/index.js +26 -0
  425. package/dist/index.js.map +1 -0
  426. package/dist/integrations.d.ts +42 -0
  427. package/dist/integrations.js +9 -0
  428. package/dist/integrations.js.map +1 -0
  429. package/dist/itsm/index.d.ts +7 -0
  430. package/dist/itsm/index.js +8 -0
  431. package/dist/itsm/index.js.map +1 -0
  432. package/dist/locales/ar.json +149 -0
  433. package/dist/locales/en.json +149 -0
  434. package/dist/primitives/index.d.ts +11 -0
  435. package/dist/primitives/index.js +12 -0
  436. package/dist/primitives/index.js.map +1 -0
  437. package/dist/progress.d.ts +7 -0
  438. package/dist/progress.js +20 -0
  439. package/dist/progress.js.map +1 -0
  440. package/dist/select/index.d.ts +3 -0
  441. package/dist/select/index.js +4 -0
  442. package/dist/select/index.js.map +1 -0
  443. package/dist/styles.css +2 -0
  444. package/dist/support/api.d.ts +8 -0
  445. package/dist/support/api.js +2 -0
  446. package/dist/support/api.js.map +1 -0
  447. package/dist/support/types/file.types.d.ts +12 -0
  448. package/dist/support/types/file.types.js +2 -0
  449. package/dist/support/types/file.types.js.map +1 -0
  450. package/dist/support/types/gallery.types.d.ts +22 -0
  451. package/dist/support/types/gallery.types.js +2 -0
  452. package/dist/support/types/gallery.types.js.map +1 -0
  453. package/dist/support/types/governorates.types.d.ts +12 -0
  454. package/dist/support/types/governorates.types.js +2 -0
  455. package/dist/support/types/governorates.types.js.map +1 -0
  456. package/dist/support/types/grade.types.d.ts +7 -0
  457. package/dist/support/types/grade.types.js +2 -0
  458. package/dist/support/types/grade.types.js.map +1 -0
  459. package/dist/support/types/index.d.ts +13 -0
  460. package/dist/support/types/index.js +14 -0
  461. package/dist/support/types/index.js.map +1 -0
  462. package/dist/support/types/metadata.types.d.ts +61 -0
  463. package/dist/support/types/metadata.types.js +3 -0
  464. package/dist/support/types/metadata.types.js.map +1 -0
  465. package/dist/support/types/table.types.d.ts +33 -0
  466. package/dist/support/types/table.types.js +2 -0
  467. package/dist/support/types/table.types.js.map +1 -0
  468. package/dist/support/types/viewCard.types.d.ts +78 -0
  469. package/dist/support/types/viewCard.types.js +3 -0
  470. package/dist/support/types/viewCard.types.js.map +1 -0
  471. package/dist/support/utils/fileUtils.d.ts +1 -0
  472. package/dist/support/utils/fileUtils.js +2 -0
  473. package/dist/support/utils/fileUtils.js.map +1 -0
  474. package/dist/support/utils.d.ts +5 -0
  475. package/dist/support/utils.js +4 -0
  476. package/dist/support/utils.js.map +1 -0
  477. package/dist/table/index.d.ts +6 -0
  478. package/dist/table/index.js +7 -0
  479. package/dist/table/index.js.map +1 -0
  480. package/dist/tasks.d.ts +3 -0
  481. package/dist/tasks.js +4 -0
  482. package/dist/tasks.js.map +1 -0
  483. package/dist/tours/TourContext.d.ts +33 -0
  484. package/dist/tours/TourContext.js +98 -0
  485. package/dist/tours/TourContext.js.map +1 -0
  486. package/dist/tours/TourOverlay.d.ts +7 -0
  487. package/dist/tours/TourOverlay.js +129 -0
  488. package/dist/tours/TourOverlay.js.map +1 -0
  489. package/dist/tours.d.ts +2 -0
  490. package/dist/tours.js +3 -0
  491. package/dist/tours.js.map +1 -0
  492. package/dist/types.d.ts +91 -0
  493. package/dist/types.js +7 -0
  494. package/dist/types.js.map +1 -0
  495. package/dist/typography/index.d.ts +4 -0
  496. package/dist/typography/index.js +5 -0
  497. package/dist/typography/index.js.map +1 -0
  498. package/dist/typography/typography.adapter.d.ts +18 -0
  499. package/dist/typography/typography.adapter.js +113 -0
  500. package/dist/typography/typography.adapter.js.map +1 -0
  501. package/dist/typography/typography.constants.d.ts +56 -0
  502. package/dist/typography/typography.constants.js +649 -0
  503. package/dist/typography/typography.constants.js.map +1 -0
  504. package/dist/typography/typography.types.d.ts +62 -0
  505. package/dist/typography/typography.types.js +6 -0
  506. package/dist/typography/typography.types.js.map +1 -0
  507. package/dist/typography/useTypography.d.ts +25 -0
  508. package/dist/typography/useTypography.js +158 -0
  509. package/dist/typography/useTypography.js.map +1 -0
  510. package/dist/ui/accordion.d.ts +7 -0
  511. package/dist/ui/accordion.js +18 -0
  512. package/dist/ui/accordion.js.map +1 -0
  513. package/dist/ui/avatar.d.ts +11 -0
  514. package/dist/ui/avatar.js +23 -0
  515. package/dist/ui/avatar.js.map +1 -0
  516. package/dist/ui/badge.d.ts +10 -0
  517. package/dist/ui/badge.js +33 -0
  518. package/dist/ui/badge.js.map +1 -0
  519. package/dist/ui/button.d.ts +11 -0
  520. package/dist/ui/button.js +41 -0
  521. package/dist/ui/button.js.map +1 -0
  522. package/dist/ui/card.d.ts +9 -0
  523. package/dist/ui/card.js +25 -0
  524. package/dist/ui/card.js.map +1 -0
  525. package/dist/ui/dialog.d.ts +17 -0
  526. package/dist/ui/dialog.js +37 -0
  527. package/dist/ui/dialog.js.map +1 -0
  528. package/dist/ui/dropdown-menu.d.ts +25 -0
  529. package/dist/ui/dropdown-menu.js +51 -0
  530. package/dist/ui/dropdown-menu.js.map +1 -0
  531. package/dist/ui/index.d.ts +15 -0
  532. package/dist/ui/index.js +16 -0
  533. package/dist/ui/index.js.map +1 -0
  534. package/dist/ui/input.d.ts +3 -0
  535. package/dist/ui/input.js +7 -0
  536. package/dist/ui/input.js.map +1 -0
  537. package/dist/ui/popover.d.ts +10 -0
  538. package/dist/ui/popover.js +26 -0
  539. package/dist/ui/popover.js.map +1 -0
  540. package/dist/ui/select.d.ts +15 -0
  541. package/dist/ui/select.js +38 -0
  542. package/dist/ui/select.js.map +1 -0
  543. package/dist/ui/switch.d.ts +6 -0
  544. package/dist/ui/switch.js +8 -0
  545. package/dist/ui/switch.js.map +1 -0
  546. package/dist/ui/table.d.ts +10 -0
  547. package/dist/ui/table.js +28 -0
  548. package/dist/ui/table.js.map +1 -0
  549. package/dist/ui/tabs.d.ts +11 -0
  550. package/dist/ui/tabs.js +29 -0
  551. package/dist/ui/tabs.js.map +1 -0
  552. package/dist/ui/textarea.d.ts +3 -0
  553. package/dist/ui/textarea.js +7 -0
  554. package/dist/ui/textarea.js.map +1 -0
  555. package/dist/ui/tooltip.d.ts +7 -0
  556. package/dist/ui/tooltip.js +17 -0
  557. package/dist/ui/tooltip.js.map +1 -0
  558. package/dist/workspace/index.d.ts +2 -0
  559. package/dist/workspace/index.js +3 -0
  560. package/dist/workspace/index.js.map +1 -0
  561. package/package.json +61 -4
  562. package/src/activity/index.ts +2 -0
  563. package/src/clickup/common/InlineNameTab.tsx +122 -0
  564. package/src/clickup/common/TaskAssigneeAvatar.tsx +127 -0
  565. package/src/clickup/common/TaskBreadcrumb.tsx +91 -0
  566. package/src/clickup/common/TaskCheck.tsx +51 -0
  567. package/src/clickup/common/TaskContextMenu.tsx +42 -0
  568. package/src/clickup/common/TaskIcon.tsx +145 -0
  569. package/src/clickup/common/TaskPriorityBadge.tsx +52 -0
  570. package/src/clickup/common/TaskRowActionMenu.tsx +43 -0
  571. package/src/clickup/common/TaskStatusPill.tsx +73 -0
  572. package/src/clickup/common/WorkspaceButton.tsx +22 -0
  573. package/src/clickup/common/WorkspaceHeader.tsx +41 -0
  574. package/src/clickup/common/WorkspaceMenus.tsx +92 -0
  575. package/src/clickup/common/WorkspaceMessage.tsx +39 -0
  576. package/src/clickup/common/WorkspaceMetricStrip.tsx +49 -0
  577. package/src/clickup/common/WorkspacePanel.tsx +27 -0
  578. package/src/clickup/common/WorkspaceSelect.tsx +173 -0
  579. package/src/clickup/common/WorkspaceTable.tsx +78 -0
  580. package/src/clickup/dialogs/ClickUpCommentComposer.tsx +93 -0
  581. package/src/clickup/dialogs/ClickUpTaskActions.tsx +73 -0
  582. package/src/clickup/dialogs/ClickUpTaskAssignee.tsx +86 -0
  583. package/src/clickup/dialogs/ClickUpTaskDescription.tsx +67 -0
  584. package/src/clickup/dialogs/ClickUpTaskDialog.tsx +187 -0
  585. package/src/clickup/dialogs/ClickUpTaskDiscussion.tsx +136 -0
  586. package/src/clickup/dialogs/ClickUpTaskMain.tsx +156 -0
  587. package/src/clickup/dialogs/ClickUpTaskProperties.tsx +214 -0
  588. package/src/clickup/elements/TaskCalendarCell.tsx +91 -0
  589. package/src/clickup/elements/TaskCard.tsx +154 -0
  590. package/src/clickup/elements/TaskGroup.tsx +208 -0
  591. package/src/clickup/elements/TaskRow.tsx +172 -0
  592. package/src/clickup/elements/TaskTableHead.tsx +29 -0
  593. package/src/clickup/elements/TaskTimelineRow.tsx +77 -0
  594. package/src/clickup/index.ts +63 -0
  595. package/src/clickup/task-ui.css +864 -0
  596. package/src/clickup/toolbar/TaskToolbar.tsx +130 -0
  597. package/src/clickup/toolbar/TaskViewPicker.tsx +148 -0
  598. package/src/clickup/toolbar/TaskViewSwitcher.tsx +129 -0
  599. package/src/clickup/types.ts +79 -0
  600. package/src/clickup/views/TaskBoardView.tsx +259 -0
  601. package/src/clickup/views/TaskCalendarView.tsx +410 -0
  602. package/src/clickup/views/TaskGanttView.tsx +178 -0
  603. package/src/clickup/views/TaskListView.tsx +95 -0
  604. package/src/clickup/views/TaskTableView.tsx +192 -0
  605. package/src/components/ActivityFeed.tsx +440 -0
  606. package/src/components/AudioPlayer.tsx +179 -0
  607. package/src/components/BulkActionBar.tsx +72 -0
  608. package/src/components/Carousel.tsx +107 -0
  609. package/src/components/ChatBot.tsx +205 -0
  610. package/src/components/CheckboxCustom.tsx +106 -0
  611. package/src/components/ClickUpTaskModal.tsx +661 -0
  612. package/src/components/ConditionBuilder.tsx +322 -0
  613. package/src/components/ConfirmDialog.tsx +157 -0
  614. package/src/components/DataCard.tsx +203 -0
  615. package/src/components/DataTable.tsx +609 -0
  616. package/src/components/DatePicker.tsx +397 -0
  617. package/src/components/EmptyState.tsx +105 -0
  618. package/src/components/Error.tsx +248 -0
  619. package/src/components/ErrorState.tsx +199 -0
  620. package/src/components/FileAttachmentChip.tsx +84 -0
  621. package/src/components/FilterConditionChip.tsx +56 -0
  622. package/src/components/GalleryCarouselDialog.tsx +439 -0
  623. package/src/components/HierarchicalSelectionMenu.tsx +432 -0
  624. package/src/components/InfiniteSelect.tsx +397 -0
  625. package/src/components/LoadingState.tsx +105 -0
  626. package/src/components/LucidIconRender.tsx +25 -0
  627. package/src/components/MasterDetailLayout.tsx +442 -0
  628. package/src/components/PinnedAttributeRow.tsx +70 -0
  629. package/src/components/PopUp.tsx +309 -0
  630. package/src/components/PrioritySignal.tsx +131 -0
  631. package/src/components/RichTextEditor.tsx +433 -0
  632. package/src/components/SLACountdown.tsx +133 -0
  633. package/src/components/StatusBadge.tsx +119 -0
  634. package/src/components/StatusCards.tsx +78 -0
  635. package/src/components/StatusProgressBar.tsx +158 -0
  636. package/src/components/TableActions.tsx +182 -0
  637. package/src/components/TaskDetailsModal.tsx +7 -0
  638. package/src/components/ThemedText.tsx +181 -0
  639. package/src/components/TicketWorkspaceLayout.tsx +63 -0
  640. package/src/components/TimePicker.tsx +283 -0
  641. package/src/components/Tooltip.tsx +128 -0
  642. package/src/components/TreeView.tsx +297 -0
  643. package/src/components/accordion.tsx +78 -0
  644. package/src/components/avatar.tsx +107 -0
  645. package/src/components/badge.tsx +72 -0
  646. package/src/components/button.tsx +93 -0
  647. package/src/components/card.tsx +103 -0
  648. package/src/components/context menu core/context-menu.tsx +304 -0
  649. package/src/components/context menu core/contextMenuAdvanced.tsx +130 -0
  650. package/src/components/dialog.tsx +186 -0
  651. package/src/components/dropdown-menu.tsx +274 -0
  652. package/src/components/filter/AdvancedFilters.tsx +834 -0
  653. package/src/components/filter/Filter.tsx +233 -0
  654. package/src/components/filter/FilterButton.tsx +38 -0
  655. package/src/components/filter/NormalFilters.tsx +109 -0
  656. package/src/components/filter/index.ts +5 -0
  657. package/src/components/filter/types.ts +36 -0
  658. package/src/components/form-error.tsx +172 -0
  659. package/src/components/icons.tsx +468 -0
  660. package/src/components/image.tsx +85 -0
  661. package/src/components/index.ts +59 -0
  662. package/src/components/input.tsx +260 -0
  663. package/src/components/label.tsx +27 -0
  664. package/src/components/layout/FeatureLayout.tsx +739 -0
  665. package/src/components/layout/FeatureLayoutExportButton.tsx +93 -0
  666. package/src/components/layout/FeatureLayoutTabs.tsx +413 -0
  667. package/src/components/layout/kanban/FeatureLayoutKanban.tsx +386 -0
  668. package/src/components/layout/kanban/KanbanCard.tsx +132 -0
  669. package/src/components/layout/kanban/KanbanColumn.tsx +241 -0
  670. package/src/components/layout/kanban/KanbanToolbar.tsx +77 -0
  671. package/src/components/layout/kanban/index.ts +6 -0
  672. package/src/components/layout/kanban/types.ts +96 -0
  673. package/src/components/popover.tsx +66 -0
  674. package/src/components/react-flow/FlowGraphHeader.tsx +68 -0
  675. package/src/components/react-flow/GlowEdge.tsx +238 -0
  676. package/src/components/react-flow/ReactFlowCanvas.tsx +112 -0
  677. package/src/components/react-flow/RelationshipFlow.tsx +50 -0
  678. package/src/components/react-flow/TreeFlowLayout.tsx +187 -0
  679. package/src/components/react-flow/edges.ts +39 -0
  680. package/src/components/react-flow/index.ts +9 -0
  681. package/src/components/react-flow/layout.ts +16 -0
  682. package/src/components/react-flow/types.ts +103 -0
  683. package/src/components/react-flow/useFlowGraph.ts +36 -0
  684. package/src/components/react-flow/useFlowGraphSync.ts +67 -0
  685. package/src/components/select.tsx +386 -0
  686. package/src/components/sonner.tsx +58 -0
  687. package/src/components/stepper.tsx +97 -0
  688. package/src/components/switch.tsx +46 -0
  689. package/src/components/table.tsx +577 -0
  690. package/src/components/tabs.tsx +81 -0
  691. package/src/components/textarea.tsx +67 -0
  692. package/src/condition-builder/index.ts +2 -0
  693. package/src/context-menu/index.ts +2 -0
  694. package/src/dropdown/SearchDropdown.tsx +145 -0
  695. package/src/dropdown/index.ts +2 -0
  696. package/src/editor.ts +1 -0
  697. package/src/feedback/index.ts +6 -0
  698. package/src/flow.ts +1 -0
  699. package/src/hooks/index.ts +3 -0
  700. package/src/hooks/useContextMenuActions.ts +69 -0
  701. package/src/hooks/useFeatureLayout.ts +44 -0
  702. package/src/hooks/useTableActions.ts +146 -0
  703. package/src/index.ts +27 -0
  704. package/src/integrations.tsx +11 -0
  705. package/src/itsm/index.ts +7 -0
  706. package/src/locales/ar.json +149 -0
  707. package/src/locales/en.json +149 -0
  708. package/src/primitives/index.ts +11 -0
  709. package/src/progress.tsx +87 -0
  710. package/src/select/index.ts +3 -0
  711. package/src/support/api.ts +1 -0
  712. package/src/support/types/file.types.ts +13 -0
  713. package/src/support/types/gallery.types.ts +22 -0
  714. package/src/support/types/governorates.types.ts +13 -0
  715. package/src/support/types/grade.types.ts +7 -0
  716. package/src/support/types/index.ts +14 -0
  717. package/src/support/types/metadata.types.ts +93 -0
  718. package/src/support/types/table.types.ts +45 -0
  719. package/src/support/types/viewCard.types.ts +100 -0
  720. package/src/support/utils/fileUtils.ts +1 -0
  721. package/src/support/utils.ts +3 -0
  722. package/src/table/index.ts +6 -0
  723. package/src/tasks.ts +3 -0
  724. package/src/tours/TourContext.tsx +142 -0
  725. package/src/tours/TourOverlay.tsx +281 -0
  726. package/src/tours.ts +2 -0
  727. package/src/types.ts +138 -0
  728. package/src/typography/index.ts +4 -0
  729. package/src/typography/typography.adapter.ts +131 -0
  730. package/src/typography/typography.constants.ts +700 -0
  731. package/src/typography/typography.types.ts +156 -0
  732. package/src/typography/useTypography.ts +211 -0
  733. package/src/ui/accordion.tsx +66 -0
  734. package/src/ui/avatar.tsx +106 -0
  735. package/src/ui/badge.tsx +58 -0
  736. package/src/ui/button.tsx +69 -0
  737. package/src/ui/card.tsx +97 -0
  738. package/src/ui/dialog.tsx +165 -0
  739. package/src/ui/dropdown-menu.tsx +262 -0
  740. package/src/ui/index.ts +15 -0
  741. package/src/ui/input.tsx +22 -0
  742. package/src/ui/popover.tsx +86 -0
  743. package/src/ui/select.tsx +193 -0
  744. package/src/ui/switch.tsx +32 -0
  745. package/src/ui/table.tsx +119 -0
  746. package/src/ui/tabs.tsx +89 -0
  747. package/src/ui/textarea.tsx +21 -0
  748. package/src/ui/tooltip.tsx +54 -0
  749. package/src/workspace/index.ts +2 -0
  750. package/styles.css +532 -0
  751. 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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -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":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,gBAAgB,CAAC;AACxB,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAOzC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAmBlC,MAAM,CAAC,MAAM,aAAa,GAAiC,CAAC,EAC1D,KAAK,EACL,QAAQ,EACR,MAAM,GAAG,EAAE,EACX,KAAK,GAAG,EAAE,EACV,OAAO,GAAG,IAAI,EACd,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,WAAW,EACX,SAAS,GACV,EAAE,EAAE;IACH,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;IACjD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAE9E,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAwB,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACjC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAuB,CAAC;QAC3C,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,cAAc,GAAG,CAAC,CAAkB,EAAE,QAAgB,EAAE,EAAE;QAC9D,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YAClC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,CAAkB,EAAE,QAAgB,EAAE,EAAE;QAC/D,IAAI,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YAClC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,CAAkB,EAAE,QAAgB,EAAE,EAAE;QAC1D,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU;YAAE,OAAO;QAEpC,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACpD,IAAI,MAAM,EAAE,CAAC;YACX,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,aAC3C,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACvB,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;gBACnE,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5D,MAAM,UAAU,GAAG,gBAAgB,KAAK,MAAM,CAAC,EAAE,CAAC;gBAClD,MAAM,aAAa,GAAG,cAAc;oBAClC,CAAC,CAAC;wBACE;4BACE,EAAE,EAAE,WAAW;4BACf,KAAK,EAAE,EAAE,CAAC,0BAA0B,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;4BAC/D,QAAQ,EAAE,CAAC,OAAO;4BAClB,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC;yBACvC;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;gBAEP,IAAI,WAAW,EAAE,CAAC;oBAChB,OAAO,CACL,mBAEE,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EACzC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,EAC/C,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,EACjD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,EACvC,SAAS,EAAE,EAAE,CACX,qOAAqO,EACrO,UAAU;4BACR,0EAA0E,CAC7E,EACD,KAAK,EAAE,GAAG,MAAM,CAAC,KAAK,KAAK,WAAW,CAAC,MAAM,GAAG,gBACpC,UAAU,MAAM,CAAC,KAAK,SAAS,aAE3C,eAAK,SAAS,EAAC,uCAAuC,aACpD,KAAC,YAAY,IAAC,SAAS,EAAC,oHAAoH,GAAG,EAC/I,eACE,SAAS,EAAC,8BAA8B,EACxC,KAAK,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,KAAK,EAAE,GACxC,IACE,EAEN,cAAK,SAAS,EAAC,+MAA+M,YAC3N,MAAM,CAAC,KAAK,GACT,EAEN,cAAK,SAAS,EAAC,mKAAmK,YAC/K,WAAW,CAAC,MAAM,GACf,KA3BD,MAAM,CAAC,EAAE,CA4BN,CACX,CAAC;gBACJ,CAAC;gBAED,OAAO,CACL,mBAEE,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,EAC/C,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,EACjD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,EACvC,SAAS,EAAE,EAAE,CACX,+CAA+C,EAC/C,mDAAmD,EACnD,UAAU;wBACR,0EAA0E,CAC7E,aAGD,KAAC,oBAAoB,IAAC,OAAO,EAAE,aAAa,YAC1C,eAAK,SAAS,EAAC,oBAAoB,aACjC,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,cAAc,IAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAC,IAAI,GAAG,EAC5C,KAAC,UAAU,IACT,OAAO,EAAC,SAAS,EACjB,EAAE,EAAC,MAAM,EACT,SAAS,EAAC,wEAAwE,YAEjF,WAAW,CAAC,MAAM,GACR,IACT,EACN,eAAK,SAAS,EAAC,iCAAiC,aAC7C,aAAa,IAAI,CAChB,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,EACvC,SAAS,EAAC,2IAA2I,EACrJ,KAAK,EAAE,EAAE,CAAC,yBAAyB,EAAE;oDACnC,YAAY,EAAE,iBAAiB;iDAChC,CAAC,gBACU,GAAG,EAAE,CAAC,yBAAyB,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,YAE5F,KAAC,cAAc,IAAC,SAAS,EAAC,UAAU,GAAG,GAChC,CACV,EACA,cAAc,IAAI,CACnB,KAAC,mBAAmB,IAClB,KAAK,EAAE,EAAE,CAAC,0BAA0B,EAAE;oDACpC,MAAM,EAAE,MAAM,CAAC,KAAK;iDACrB,CAAC,EACF,OAAO,EAAE,aAAa,EACtB,SAAS,EAAC,qBAAqB,GAC/B,CACH,IACG,IACA,GACe,EAEvB,cAAK,SAAS,EAAC,qBAAqB,YACjC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACzB,KAAC,QAAQ,IAEP,IAAI,EAAE,IAAI,EACV,KAAK,EACH,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,EAEzD,QAAQ,EACN,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,EAE9D,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,WAAW,EACpB,gBAAgB,EAAE,gBAAgB,IAX7B,IAAI,CAAC,EAAE,CAYZ,CACH,CAAC,GACE,EAGL,OAAO,IAAI,SAAS,IAAI,CACvB,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EACnC,SAAS,EAAC,gDAAgD,aAE1D,KAAC,QAAQ,IAAC,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,aAAa,GAAG,EAChD,KAAC,UAAU,IACT,EAAE,EAAC,MAAM,EACT,OAAO,EAAC,MAAM,EACd,SAAS,EAAC,uDAAuD,YAEhE,EAAE,CAAC,kBAAkB,CAAC,GACZ,IACN,CACV,KAtFI,MAAM,CAAC,EAAE,CAuFN,CACX,CAAC;YACJ,CAAC,CAAC,EACD,WAAW,IAAI,CACd,kBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,OAAO,EAClB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAC,+EAA+E,aAEzF,KAAC,QAAQ,IAAC,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,aAAa,GAAG,EAChD,KAAC,UAAU,IACT,EAAE,EAAC,MAAM,EACT,OAAO,EAAC,MAAM,EACd,SAAS,EAAC,sCAAsC,YAE/C,EAAE,CAAC,mBAAmB,CAAC,GACb,IACN,CACV,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -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