@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 @@
1
+ {"version":3,"file":"MasterDetailLayout.js","sourceRoot":"","sources":["../../src/components/MasterDetailLayout.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ export interface PinnedAttributeRowProps {
3
+ icon?: React.ReactNode;
4
+ label: string;
5
+ value: React.ReactNode;
6
+ isPinned?: boolean;
7
+ onTogglePin?: () => void;
8
+ onClick?: () => void;
9
+ className?: string;
10
+ }
11
+ export declare function PinnedAttributeRow({ icon, label, value, isPinned, onTogglePin, onClick, className, }: PinnedAttributeRowProps): React.JSX.Element;
12
+ export default PinnedAttributeRow;
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Pin } from "lucide-react";
3
+ import { cn } from "../support/utils.js";
4
+ export function PinnedAttributeRow({ icon, label, value, isPinned = false, onTogglePin, onClick, className, }) {
5
+ return (_jsxs("div", { className: cn("group flex items-center justify-between gap-2.5 py-1 px-1.5 rounded-md transition-colors", onClick && "cursor-pointer hover:bg-dashboard-secondary/60", className), onClick: onClick, children: [_jsxs("div", { className: "flex items-center gap-2 min-w-0 shrink-0 text-xs text-dashboard-muted-foreground", children: [icon && (_jsx("span", { className: "shrink-0 text-dashboard-muted-foreground/80", children: icon })), _jsx("span", { className: "font-medium truncate", children: label })] }), _jsxs("div", { className: "flex items-center gap-2 justify-end min-w-0", children: [_jsx("div", { className: "text-xs text-dashboard-foreground font-medium truncate", children: value }), onTogglePin && (_jsx("button", { type: "button", onClick: (e) => {
6
+ e.stopPropagation();
7
+ onTogglePin();
8
+ }, "aria-label": isPinned ? `Unpin ${label}` : `Pin ${label}`, className: cn("p-1 rounded opacity-0 group-hover:opacity-100 transition-opacity text-dashboard-muted-foreground hover:text-dashboard-foreground shrink-0", isPinned && "opacity-100 text-dashboard-primary"), children: _jsx(Pin, { className: "w-3 h-3" }) }))] })] }));
9
+ }
10
+ export default PinnedAttributeRow;
11
+ //# sourceMappingURL=PinnedAttributeRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PinnedAttributeRow.js","sourceRoot":"","sources":["../../src/components/PinnedAttributeRow.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAYtC,MAAM,UAAU,kBAAkB,CAAC,EAC/B,IAAI,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,GAAG,KAAK,EAChB,WAAW,EACX,OAAO,EACP,SAAS,GACa;IACtB,OAAO,CACH,eACI,SAAS,EAAE,EAAE,CACT,0FAA0F,EAC1F,OAAO,IAAI,gDAAgD,EAC3D,SAAS,CACZ,EACD,OAAO,EAAE,OAAO,aAGhB,eAAK,SAAS,EAAC,kFAAkF,aAC5F,IAAI,IAAI,CACL,eAAM,SAAS,EAAC,6CAA6C,YACxD,IAAI,GACF,CACV,EACD,eAAM,SAAS,EAAC,sBAAsB,YAAE,KAAK,GAAQ,IACnD,EAGN,eAAK,SAAS,EAAC,6CAA6C,aACxD,cAAK,SAAS,EAAC,wDAAwD,YAClE,KAAK,GACJ,EAEL,WAAW,IAAI,CACZ,iBACI,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;4BACX,CAAC,CAAC,eAAe,EAAE,CAAC;4BACpB,WAAW,EAAE,CAAC;wBAClB,CAAC,gBACW,QAAQ,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,EACxD,SAAS,EAAE,EAAE,CACT,2IAA2I,EAC3I,QAAQ,IAAI,oCAAoC,CACnD,YAED,KAAC,GAAG,IAAC,SAAS,EAAC,SAAS,GAAG,GACtB,CACZ,IACC,IACJ,CACT,CAAC;AACN,CAAC;AAED,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,11 @@
1
+ interface PopUpProps {
2
+ title?: string;
3
+ description?: string;
4
+ image?: string;
5
+ primaryColor?: string;
6
+ secondaryColor?: string;
7
+ accentColor?: string;
8
+ onClose?: () => void;
9
+ }
10
+ declare function PopUp({ title, description, image, primaryColor, secondaryColor, accentColor, onClose, }: PopUpProps): import("react").JSX.Element | undefined;
11
+ export default PopUp;
@@ -0,0 +1,83 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import DOMPurify from "dompurify";
3
+ import { AnimatePresence, motion } from "framer-motion";
4
+ import { X } from "lucide-react";
5
+ import { useEffect, useState } from "react";
6
+ function PopUp({ title, description, image, primaryColor, secondaryColor, accentColor, onClose, }) {
7
+ const [isVisible, setIsVisible] = useState(false);
8
+ useEffect(() => {
9
+ const timer = setTimeout(() => {
10
+ setIsVisible(true);
11
+ }, 5000);
12
+ return () => clearTimeout(timer);
13
+ }, []);
14
+ const handleClose = () => {
15
+ setIsVisible(false);
16
+ onClose?.();
17
+ };
18
+ if (!title && !description && !image)
19
+ return;
20
+ return (_jsxs(_Fragment, { children: [_jsx("style", { children: `
21
+ .banner-popup-bg-accent:hover {
22
+ background-color: ${accentColor || "var(--color-dashboard-secondary)"};
23
+ }
24
+ ` }), _jsx(AnimatePresence, { children: isVisible && (_jsxs(_Fragment, { children: [_jsx(motion.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.3 }, className: "fixed inset-0 z-100 bg-black/75 backdrop-blur-xs", onClick: handleClose }), _jsx(motion.div, { initial: { scale: 0.85, opacity: 0, y: 20 }, animate: { scale: 1, opacity: 1, y: 0 }, exit: { scale: 0.85, opacity: 0, y: 20 }, whileHover: {
25
+ y: -2,
26
+ }, transition: { duration: 0.25, ease: "easeOut" }, className: "fixed inset-0 z-100 flex items-center justify-center p-4", children: _jsxs("div", { className: "relative w-full h-auto max-w-md bg-dashboard-card rounded-2xl border border-dashboard-border overflow-hidden shadow-2xl", onClick: (e) => e.stopPropagation(), children: [_jsx("button", { onClick: handleClose, "aria-label": "Close popup", className: "absolute top-3 right-3 z-20 w-7 h-7 rounded-full bg-dashboard-secondary/80 border border-dashboard-border flex items-center justify-center text-dashboard-foreground hover:bg-dashboard-secondary transition-all cursor-pointer shadow-xs", children: _jsx(X, { size: 14 }) }), _jsx(motion.div, { initial: { x: 50, opacity: 0 }, animate: { x: 0, opacity: 1 }, exit: { x: -50, opacity: 0 }, transition: { duration: 0.3 }, className: "relative w-full h-full", children: image ? (_jsx("img", { src: image, alt: title || "Banner", className: "w-full h-full object-cover" })) : (_jsx("div", { className: "w-full h-full bg-linear-to-br from-dashboard-primary/20 via-dashboard-background to-dashboard-primary/10 flex items-center justify-center overflow-hidden", children: _jsxs("svg", { width: "300", height: "200", viewBox: "0 0 300 200", xmlns: "http://www.w3.org/2000/svg", className: "absolute top-0 left-0", children: [_jsx("defs", { children: _jsxs("radialGradient", { id: "sky1", cx: "50%", cy: "30%", r: "70%", children: [_jsx("stop", { offset: "0%", stopColor: "#1e4a5c" }), _jsx("stop", { offset: "100%", stopColor: "#0a1e28" })] }) }), _jsx("rect", { width: "300", height: "200", fill: "url(#sky1)" }), _jsx("circle", { cx: "240", cy: "35", r: "18", fill: "#c8d8e8", opacity: "0.18" }), _jsx("circle", { cx: "240", cy: "35", r: "12", fill: "#c8d8e8", opacity: "0.28" }), _jsx("polygon", { points: "150,30 210,140 90,140", fill: "#122535", opacity: "0.95" }), _jsx("polygon", { points: "150,50 195,140 105,140", fill: "#0a1c28", opacity: "0.9" }), _jsx("polygon", { points: "60,60 110,140 10,140", fill: "#152a38", opacity: "0.9" }), _jsx("polygon", { points: "250,50 295,140 205,140", fill: "#152a38", opacity: "0.85" }), _jsx("rect", { x: "0", y: "130", width: "300", height: "70", fill: "#0a1c26", opacity: "0.6" }), _jsx("rect", { x: "0", y: "150", width: "300", height: "50", fill: "#0d2232", opacity: "0.7" }), _jsx("line", { x1: "0", y1: "148", x2: "300", y2: "148", stroke: "#1a3a4a", strokeWidth: "0.5", opacity: "0.4" }), _jsx("ellipse", { cx: "150", cy: "195", rx: "120", ry: "8", fill: "#0a1825", opacity: "0.5" })] }) })) }), _jsxs("div", { className: "p-5", children: [_jsx("div", { className: "flex items-start justify-between mb-2.5", children: _jsx(motion.h3, { initial: { y: 10, opacity: 0 }, animate: { y: 0, opacity: 1 }, transition: { delay: 0.15 }, className: "text-xl font-bold leading-tight", style: {
27
+ color: primaryColor,
28
+ }, children: title || "Special Offer" }) }), _jsx(motion.div, { initial: { y: 10, opacity: 0 }, animate: { y: 0, opacity: 1 }, transition: { delay: 0.25 }, className: "banner-popup-content text-xs leading-relaxed mb-4 text-dashboard-muted-foreground", dangerouslySetInnerHTML: {
29
+ __html: DOMPurify.sanitize(description || ""),
30
+ }, style: {
31
+ color: secondaryColor,
32
+ } }), _jsx("style", { children: `
33
+ .banner-popup-content {
34
+ color: var(--color-dashboard-muted-foreground);
35
+ font-size: 0.75rem;
36
+ line-height: 1.5;
37
+ }
38
+ .banner-popup-content p {
39
+ margin: 0.375rem 0;
40
+ }
41
+ .banner-popup-content strong {
42
+ font-weight: 600;
43
+ color: var(--color-dashboard-foreground);
44
+ }
45
+ .banner-popup-content em {
46
+ font-style: italic;
47
+ }
48
+ .banner-popup-content u {
49
+ text-decoration: underline;
50
+ text-underline-offset: 2px;
51
+ }
52
+ .banner-popup-content ul {
53
+ list-style-type: disc;
54
+ padding-left: 1rem;
55
+ margin: 0.375rem 0;
56
+ }
57
+ .banner-popup-content ol {
58
+ list-style-type: decimal;
59
+ padding-left: 1rem;
60
+ margin: 0.375rem 0;
61
+ }
62
+ .banner-popup-content li {
63
+ display: list-item;
64
+ margin: 0.2rem 0;
65
+ }
66
+ .banner-popup-content blockquote {
67
+ border-left: 2px solid var(--color-dashboard-primary);
68
+ padding: 0.25rem 0 0.25rem 0.5rem;
69
+ margin: 0.5rem 0;
70
+ font-style: italic;
71
+ background: var(--color-dashboard-secondary);
72
+ border-radius: 0 4px 4px 0;
73
+ }
74
+ .banner-popup-content a {
75
+ color: var(--color-dashboard-primary);
76
+ text-decoration: underline;
77
+ }
78
+ ` }), _jsx(motion.button, { initial: { y: 10, opacity: 0 }, animate: { y: 0, opacity: 1 }, transition: { delay: 0.35 }, onClick: handleClose, whileHover: { opacity: 0.9 }, whileTap: { scale: 0.98 }, className: "w-full py-2.5 rounded-lg text-white text-xs font-semibold bg-dashboard-primary hover:bg-dashboard-primary/90 transition-all cursor-pointer shadow-xs", style: {
79
+ backgroundColor: primaryColor,
80
+ }, children: "Got it" })] })] }) })] })) })] }));
81
+ }
82
+ export default PopUp;
83
+ //# sourceMappingURL=PopUp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopUp.js","sourceRoot":"","sources":["../../src/components/PopUp.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ export type PriorityLevel = "critical" | "urgent" | "high" | "normal" | "medium" | "low" | "lowest";
3
+ export interface PrioritySignalProps extends React.HTMLAttributes<HTMLSpanElement> {
4
+ level?: PriorityLevel | string;
5
+ label?: string;
6
+ showLabel?: boolean;
7
+ size?: "xs" | "sm";
8
+ }
9
+ export declare function PrioritySignal({ level, label, showLabel, size, className, ...props }: PrioritySignalProps): React.JSX.Element;
10
+ export default PrioritySignal;
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { AlertCircle } from "lucide-react";
3
+ import { cn } from "../support/utils.js";
4
+ const parseLevel = (rawLevel) => {
5
+ const norm = (rawLevel || "normal").toLowerCase();
6
+ if (norm.includes("crit") || norm.includes("urg") || norm === "p1") {
7
+ return {
8
+ bars: 4,
9
+ color: "text-red-500",
10
+ barBg: "bg-red-500",
11
+ defaultLabel: "Critical",
12
+ isAlert: true,
13
+ };
14
+ }
15
+ if (norm.includes("high") || norm === "p2") {
16
+ return {
17
+ bars: 3,
18
+ color: "text-amber-500",
19
+ barBg: "bg-amber-500",
20
+ defaultLabel: "High",
21
+ isAlert: false,
22
+ };
23
+ }
24
+ if (norm.includes("low") || norm === "p4" || norm.includes("minor")) {
25
+ return {
26
+ bars: 1,
27
+ color: "text-dashboard-muted-foreground",
28
+ barBg: "bg-dashboard-muted-foreground",
29
+ defaultLabel: "Low",
30
+ isAlert: false,
31
+ };
32
+ }
33
+ // Normal / Medium (Default)
34
+ return {
35
+ bars: 2,
36
+ color: "text-emerald-500",
37
+ barBg: "bg-emerald-500",
38
+ defaultLabel: "Normal",
39
+ isAlert: false,
40
+ };
41
+ };
42
+ export function PrioritySignal({ level = "normal", label, showLabel = true, size = "xs", className, ...props }) {
43
+ const config = parseLevel(level);
44
+ const displayLabel = label ?? config.defaultLabel;
45
+ return (_jsxs("span", { className: cn("inline-flex items-center gap-1.5 shrink-0 select-none", size === "xs" ? "text-[11px]" : "text-xs", className), ...props, children: [config.isAlert ? (_jsx("span", { className: "inline-flex items-center justify-center text-red-500 shrink-0", children: _jsx(AlertCircle, { className: size === "xs" ? "w-3.5 h-3.5" : "w-4 h-4" }) })) : (_jsxs("span", { className: "inline-flex items-end gap-0.5 h-3.5 w-3.5 shrink-0 justify-center pb-0.5", "aria-hidden": "true", children: [_jsx("span", { className: cn("w-[2.5px] rounded-xs transition-colors", "h-[4px]", config.bars >= 1
46
+ ? config.barBg
47
+ : "bg-dashboard-border") }), _jsx("span", { className: cn("w-[2.5px] rounded-xs transition-colors", "h-[7px]", config.bars >= 2
48
+ ? config.barBg
49
+ : "bg-dashboard-border") }), _jsx("span", { className: cn("w-[2.5px] rounded-xs transition-colors", "h-[10px]", config.bars >= 3
50
+ ? config.barBg
51
+ : "bg-dashboard-border") })] })), showLabel && (_jsx("span", { className: "font-medium text-dashboard-foreground", children: displayLabel }))] }));
52
+ }
53
+ export default PrioritySignal;
54
+ //# sourceMappingURL=PrioritySignal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrioritySignal.js","sourceRoot":"","sources":["../../src/components/PrioritySignal.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ interface RichTextEditorProps {
2
+ content: string;
3
+ onChange: (content: string) => void;
4
+ placeholder?: string;
5
+ }
6
+ export default function RichTextEditor({ content, onChange, placeholder, }: RichTextEditorProps): import("react").JSX.Element;
7
+ export {};
@@ -0,0 +1,252 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button } from "../index.js";
3
+ import { useLanguage } from "@gostack-framework/react";
4
+ import { cn } from "../support/utils.js";
5
+ import { Highlight } from "@tiptap/extension-highlight";
6
+ import Image from "@tiptap/extension-image";
7
+ import Link from "@tiptap/extension-link";
8
+ import Placeholder from "@tiptap/extension-placeholder";
9
+ import Underline from "@tiptap/extension-underline";
10
+ import { EditorContent, useEditor } from "@tiptap/react";
11
+ import StarterKit from "@tiptap/starter-kit";
12
+ import { Bold, Code, Highlighter, Image as ImageIcon, Italic, Link as LinkIcon, List, ListOrdered, Quote, Redo, Underline as UnderlineIcon, Undo, } from "lucide-react";
13
+ import { useState } from "react";
14
+ const MenuBar = ({ editor, onLinkClick, onImageClick, }) => {
15
+ if (!editor)
16
+ return null;
17
+ const buttons = [
18
+ {
19
+ icon: Bold,
20
+ action: () => editor.chain().focus().toggleBold().run(),
21
+ isActive: editor.isActive("bold"),
22
+ label: "Bold",
23
+ group: 0,
24
+ },
25
+ {
26
+ icon: Italic,
27
+ action: () => editor.chain().focus().toggleItalic().run(),
28
+ isActive: editor.isActive("italic"),
29
+ label: "Italic",
30
+ group: 0,
31
+ },
32
+ {
33
+ icon: UnderlineIcon,
34
+ action: () => editor.chain().focus().toggleUnderline().run(),
35
+ isActive: editor.isActive("underline"),
36
+ label: "Underline",
37
+ group: 0,
38
+ },
39
+ // ── NEW: Highlight button in group 0 ──
40
+ {
41
+ icon: Highlighter,
42
+ action: () => editor
43
+ .chain()
44
+ .focus()
45
+ .toggleHighlight({ color: "rgba(105, 117, 226, 0.35)" })
46
+ .run(),
47
+ isActive: editor.isActive("highlight"),
48
+ label: "Highlight",
49
+ group: 0,
50
+ },
51
+ {
52
+ icon: List,
53
+ action: () => editor.chain().focus().toggleBulletList().run(),
54
+ isActive: editor.isActive("bulletList"),
55
+ label: "Bullet List",
56
+ group: 1,
57
+ },
58
+ {
59
+ icon: ListOrdered,
60
+ action: () => editor.chain().focus().toggleOrderedList().run(),
61
+ isActive: editor.isActive("orderedList"),
62
+ label: "Ordered List",
63
+ group: 1,
64
+ },
65
+ {
66
+ icon: Quote,
67
+ action: () => editor.chain().focus().toggleBlockquote().run(),
68
+ isActive: editor.isActive("blockquote"),
69
+ label: "Quote",
70
+ group: 2,
71
+ },
72
+ {
73
+ icon: Code,
74
+ action: () => editor.chain().focus().toggleCodeBlock().run(),
75
+ isActive: editor.isActive("codeBlock"),
76
+ label: "Code Block",
77
+ group: 2,
78
+ },
79
+ {
80
+ icon: LinkIcon,
81
+ action: onLinkClick,
82
+ isActive: editor.isActive("link"),
83
+ label: "Link",
84
+ group: 3,
85
+ },
86
+ {
87
+ icon: ImageIcon,
88
+ action: onImageClick,
89
+ isActive: false,
90
+ label: "Image",
91
+ group: 3,
92
+ },
93
+ ];
94
+ const groups = [0, 1, 2, 3];
95
+ return (_jsxs("div", { className: "flex flex-wrap items-center gap-1 p-2 bg-dashboard-secondary/50 backdrop-blur-md border-b border-dashboard-border sticky top-0 z-10", children: [groups.map((groupId, gi) => (_jsx("div", { className: cn("flex items-center gap-1 px-2", gi < groups.length - 1 &&
96
+ "border-r border-dashboard-border"), children: buttons
97
+ .filter((b) => b.group === groupId)
98
+ .map((btn, i) => (_jsx(Button, { type: "button", variant: "ghost", size: "sm", onClick: btn.action, className: cn("h-8 w-8 p-0 rounded-lg transition-all", btn.isActive
99
+ ? "bg-dashboard-primary text-dashboard-primary-foreground shadow-sm"
100
+ : "text-dashboard-muted-foreground hover:bg-dashboard-secondary hover:text-dashboard-foreground"), title: btn.label, children: _jsx(btn.icon, { className: "h-3.5 w-3.5" }) }, i))) }, groupId))), _jsx("div", { className: "flex-1" }), _jsxs("div", { className: "flex items-center gap-1 border-l border-dashboard-border pl-2", children: [_jsx(Button, { type: "button", variant: "ghost", size: "sm", onClick: () => editor.chain().focus().undo().run(), disabled: !editor.can().undo(), className: "h-8 w-8 p-0 rounded-lg text-dashboard-muted-foreground hover:bg-dashboard-secondary hover:text-dashboard-foreground disabled:opacity-30", children: _jsx(Undo, { className: "h-3.5 w-3.5" }) }), _jsx(Button, { type: "button", variant: "ghost", size: "sm", onClick: () => editor.chain().focus().redo().run(), disabled: !editor.can().redo(), className: "h-8 w-8 p-0 rounded-lg text-dashboard-muted-foreground hover:bg-dashboard-secondary hover:text-dashboard-foreground disabled:opacity-30", children: _jsx(Redo, { className: "h-3.5 w-3.5" }) })] })] }));
101
+ };
102
+ export default function RichTextEditor({ content, onChange, placeholder, }) {
103
+ const { t } = useLanguage();
104
+ const [linkModalOpen, setLinkModalOpen] = useState(false);
105
+ const [imageModalOpen, setImageModalOpen] = useState(false);
106
+ const [linkUrl, setLinkUrl] = useState("");
107
+ const [imageUrl, setImageUrl] = useState("");
108
+ const editor = useEditor({
109
+ extensions: [
110
+ StarterKit.configure({
111
+ bulletList: { keepMarks: true, keepAttributes: false },
112
+ orderedList: { keepMarks: true, keepAttributes: false },
113
+ }),
114
+ Underline,
115
+ Highlight.configure({ multicolor: true }), // ← NEW
116
+ Link.configure({ openOnClick: false }),
117
+ Image.configure({ allowBase64: true }),
118
+ Placeholder.configure({
119
+ placeholder: placeholder || "Start writing...",
120
+ }),
121
+ ],
122
+ content,
123
+ onUpdate: ({ editor }) => {
124
+ onChange(editor.getHTML());
125
+ },
126
+ editorProps: {
127
+ attributes: {
128
+ class: "focus:outline-none min-h-[400px] p-8 max-w-none",
129
+ },
130
+ },
131
+ });
132
+ const handleLinkSubmit = () => {
133
+ if (linkUrl && editor) {
134
+ const url = linkUrl.startsWith("http")
135
+ ? linkUrl
136
+ : `https://${linkUrl}`;
137
+ editor.chain().focus().setLink({ href: url }).run();
138
+ setLinkUrl("");
139
+ setLinkModalOpen(false);
140
+ }
141
+ };
142
+ const handleImageSubmit = () => {
143
+ if (imageUrl && editor) {
144
+ editor.chain().focus().setImage({ src: imageUrl }).run();
145
+ setImageUrl("");
146
+ setImageModalOpen(false);
147
+ }
148
+ };
149
+ const characterCount = editor ? editor.getText().length : 0;
150
+ return (_jsxs("div", { className: "w-full border border-dashboard-border rounded-xl bg-dashboard-card overflow-hidden focus-within:border-dashboard-primary/50 transition-all shadow-xs", children: [_jsx(MenuBar, { editor: editor, onLinkClick: () => setLinkModalOpen(true), onImageClick: () => setImageModalOpen(true) }), _jsx(EditorContent, { editor: editor }), _jsxs("div", { className: "flex justify-between items-center px-4 py-2 bg-dashboard-secondary/30 border-t border-dashboard-border text-xs text-dashboard-muted-foreground", children: [_jsxs("span", { children: ["Characters: ", characterCount] }), _jsx("span", { children: "Rich Text Editor" })] }), linkModalOpen && (_jsx("div", { className: "fixed inset-0 bg-black/75 flex items-center justify-center z-50 backdrop-blur-xs", children: _jsxs("div", { className: "bg-dashboard-card border border-dashboard-border rounded-xl p-5 w-96 shadow-2xl animate-in fade-in zoom-in-95 duration-200", children: [_jsx("h3", { className: "text-sm font-bold text-dashboard-foreground mb-3", children: "Add Link" }), _jsx("input", { id: "rich-text-link-url", "aria-label": "Link URL", type: "url", value: linkUrl, onChange: (e) => setLinkUrl(e.target.value), onKeyDown: (e) => e.key === "Enter" && handleLinkSubmit(), placeholder: "https://example.com", className: "w-full px-3 py-1.5 bg-dashboard-background/70 border border-dashboard-border rounded-lg focus:outline-none focus:ring-1 focus:ring-dashboard-primary/40 text-dashboard-foreground text-xs mb-3", autoFocus: true }), _jsxs("div", { className: "flex gap-2 justify-end", children: [_jsx(Button, { variant: "ghost", size: "sm", onClick: () => {
151
+ setLinkModalOpen(false);
152
+ setLinkUrl("");
153
+ }, children: t("dashboard:common.cancel") }), _jsx(Button, { size: "sm", onClick: handleLinkSubmit, children: "Add Link" })] })] }) })), imageModalOpen && (_jsx("div", { className: "fixed inset-0 bg-black/75 flex items-center justify-center z-50 backdrop-blur-xs", children: _jsxs("div", { className: "bg-dashboard-card border border-dashboard-border rounded-xl p-5 w-96 shadow-2xl animate-in fade-in zoom-in-95 duration-200", children: [_jsx("h3", { className: "text-sm font-bold text-dashboard-foreground mb-3", children: "Add Image" }), _jsx("input", { id: "rich-text-image-url", "aria-label": "Image URL", type: "url", value: imageUrl, onChange: (e) => setImageUrl(e.target.value), onKeyDown: (e) => e.key === "Enter" && handleImageSubmit(), placeholder: "https://example.com/image.jpg", className: "w-full px-3 py-1.5 bg-dashboard-background/70 border border-dashboard-border rounded-lg focus:outline-none focus:ring-1 focus:ring-dashboard-primary/40 text-dashboard-foreground text-xs mb-3", autoFocus: true }), _jsxs("div", { className: "flex gap-2 justify-end", children: [_jsx(Button, { variant: "ghost", onClick: () => {
154
+ setImageModalOpen(false);
155
+ setImageUrl("");
156
+ }, children: t("dashboard:common.cancel") }), _jsx(Button, { onClick: handleImageSubmit, children: "Add Image" })] })] }) })), _jsx("style", { children: `
157
+ .ProseMirror p.is-editor-empty:first-child::before {
158
+ content: attr(data-placeholder);
159
+ float: left;
160
+ color: var(--color-dashboard-muted-foreground);
161
+ opacity: 0.6;
162
+ pointer-events: none;
163
+ height: 0;
164
+ }
165
+ .ProseMirror { outline: none !important; }
166
+ .ProseMirror p { margin: 0.5rem 0; color: var(--color-dashboard-foreground); opacity: 0.9; line-height: 1.75; }
167
+ .ProseMirror strong { color: var(--color-dashboard-foreground); font-weight: 700; }
168
+ .ProseMirror em { font-style: italic; color: var(--color-dashboard-foreground); opacity: 0.8; }
169
+ .ProseMirror u {
170
+ text-decoration: underline;
171
+ text-decoration-color: var(--color-dashboard-primary);
172
+ text-underline-offset: 3px;
173
+ opacity: 0.8;
174
+ }
175
+
176
+ /* ── Highlight ── */
177
+ .ProseMirror mark {
178
+ background-color: var(--color-dashboard-primary);
179
+ color: var(--color-dashboard-primary-foreground);
180
+ border-radius: 3px;
181
+ padding: 0.05em 0.2em;
182
+ }
183
+
184
+ .ProseMirror ul {
185
+ list-style-type: disc !important;
186
+ padding-left: 1.5rem !important;
187
+ margin: 0.75rem 0 !important;
188
+ }
189
+ .ProseMirror ol {
190
+ list-style-type: decimal !important;
191
+ padding-left: 1.5rem !important;
192
+ margin: 0.75rem 0 !important;
193
+ }
194
+ .ProseMirror li {
195
+ display: list-item !important;
196
+ margin: 0.25rem 0 !important;
197
+ color: var(--color-dashboard-foreground);
198
+ opacity: 0.9;
199
+ }
200
+ .ProseMirror li p { margin: 0 !important; }
201
+ .ProseMirror blockquote {
202
+ border-left: 4px solid var(--color-dashboard-primary);
203
+ padding: 0.5rem 0 0.5rem 1rem;
204
+ margin: 1rem 0;
205
+ font-style: italic;
206
+ color: var(--color-dashboard-muted-foreground);
207
+ background: color-mix(in srgb, var(--color-dashboard-primary) 8%, transparent);
208
+ border-radius: 0 6px 6px 0;
209
+ }
210
+ .ProseMirror blockquote p { margin: 0.2rem 0 !important; }
211
+ .ProseMirror code {
212
+ background: var(--color-dashboard-secondary);
213
+ color: var(--color-dashboard-primary);
214
+ font-family: 'Courier New', monospace;
215
+ font-size: 0.88em;
216
+ padding: 0.15em 0.45em;
217
+ border-radius: 5px;
218
+ border: 1px solid var(--color-dashboard-border);
219
+ }
220
+ .ProseMirror pre {
221
+ background: var(--color-dashboard-background);
222
+ border: 1px solid var(--color-dashboard-border);
223
+ border-radius: 10px;
224
+ padding: 1.25rem;
225
+ margin: 1rem 0;
226
+ overflow-x: auto;
227
+ }
228
+ .ProseMirror pre code {
229
+ background: none;
230
+ border: none;
231
+ padding: 0;
232
+ color: var(--color-dashboard-foreground);
233
+ font-size: 0.9rem;
234
+ }
235
+ .ProseMirror a {
236
+ color: var(--color-dashboard-primary);
237
+ text-decoration: underline;
238
+ text-underline-offset: 3px;
239
+ text-decoration-color: var(--color-dashboard-primary);
240
+ cursor: pointer;
241
+ }
242
+ .ProseMirror a:hover { opacity: 0.8; }
243
+ .ProseMirror img {
244
+ max-width: 100%;
245
+ height: auto;
246
+ border-radius: 1rem;
247
+ margin: 1.5rem 0;
248
+ border: 1px solid var(--color-dashboard-border);
249
+ }
250
+ ` })] }));
251
+ }
252
+ //# sourceMappingURL=RichTextEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RichTextEditor.js","sourceRoot":"","sources":["../../src/components/RichTextEditor.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+ export interface SLACountdownProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ stage: string;
4
+ remainingTime: string;
5
+ percentage: number;
6
+ isBreached?: boolean;
7
+ targetDate?: string;
8
+ }
9
+ export declare function SLADialIndicator({ percentage, isBreached, size, }: {
10
+ percentage: number;
11
+ isBreached?: boolean;
12
+ size?: number;
13
+ }): React.JSX.Element;
14
+ export declare function SLACountdown({ stage, remainingTime, percentage, isBreached, targetDate, className, ...props }: SLACountdownProps): React.JSX.Element;
15
+ export default SLACountdown;
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../support/utils.js";
3
+ export function SLADialIndicator({ percentage, isBreached = false, size = 18, }) {
4
+ const radius = 7;
5
+ const circumference = 2 * Math.PI * radius;
6
+ const clampedPct = Math.min(Math.max(percentage, 0), 100);
7
+ const strokeDashoffset = circumference - (clampedPct / 100) * circumference;
8
+ const strokeColor = isBreached
9
+ ? "text-red-500"
10
+ : percentage > 75
11
+ ? "text-amber-500"
12
+ : "text-dashboard-muted-foreground";
13
+ return (_jsx("div", { className: "relative inline-flex items-center justify-center shrink-0", style: { width: size, height: size }, "aria-hidden": "true", children: _jsxs("svg", { width: size, height: size, viewBox: "0 0 20 20", className: "-rotate-90", children: [_jsx("circle", { cx: "10", cy: "10", r: radius, className: "stroke-dashboard-border", strokeWidth: "2.5", fill: "none" }), _jsx("circle", { cx: "10", cy: "10", r: radius, className: cn(strokeColor, "transition-all duration-300"), strokeWidth: "2.5", strokeDasharray: circumference, strokeDashoffset: strokeDashoffset, strokeLinecap: "round", fill: isBreached ? "currentColor" : "none" })] }) }));
14
+ }
15
+ export function SLACountdown({ stage, remainingTime, percentage, isBreached = false, targetDate, className, ...props }) {
16
+ const breached = isBreached || percentage >= 100 || remainingTime.startsWith("-");
17
+ return (_jsxs("div", { className: cn("flex items-center justify-between text-xs py-1 px-1 select-none", className), ...props, children: [_jsx("span", { className: cn("font-medium", breached
18
+ ? "text-red-500"
19
+ : "text-dashboard-muted-foreground"), children: stage }), _jsxs("div", { className: "flex items-center gap-2.5", children: [_jsx("span", { className: cn("font-mono font-medium text-xs", breached
20
+ ? "text-red-500"
21
+ : "text-dashboard-foreground"), children: remainingTime }), _jsx(SLADialIndicator, { percentage: percentage, isBreached: breached, size: 16 }), _jsxs("span", { className: cn("text-[11px] font-mono w-9 text-right", breached
22
+ ? "text-red-500 font-semibold"
23
+ : "text-dashboard-muted-foreground"), children: [Math.round(percentage), "%"] })] })] }));
24
+ }
25
+ export default SLACountdown;
26
+ //# sourceMappingURL=SLACountdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SLACountdown.js","sourceRoot":"","sources":["../../src/components/SLACountdown.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAUtC,MAAM,UAAU,gBAAgB,CAAC,EAC7B,UAAU,EACV,UAAU,GAAG,KAAK,EAClB,IAAI,GAAG,EAAE,GAKZ;IACG,MAAM,MAAM,GAAG,CAAC,CAAC;IACjB,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1D,MAAM,gBAAgB,GAAG,aAAa,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,aAAa,CAAC;IAE5E,MAAM,WAAW,GAAG,UAAU;QAC1B,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,UAAU,GAAG,EAAE;YACf,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,iCAAiC,CAAC;IAE1C,OAAO,CACH,cACI,SAAS,EAAC,2DAA2D,EACrE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBACxB,MAAM,YAElB,eACI,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAC,WAAW,EACnB,SAAS,EAAC,YAAY,aAGtB,iBACI,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,IAAI,EACP,CAAC,EAAE,MAAM,EACT,SAAS,EAAC,yBAAyB,EACnC,WAAW,EAAC,KAAK,EACjB,IAAI,EAAC,MAAM,GACb,EAEF,iBACI,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,IAAI,EACP,CAAC,EAAE,MAAM,EACT,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,6BAA6B,CAAC,EACzD,WAAW,EAAC,KAAK,EACjB,eAAe,EAAE,aAAa,EAC9B,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAC,OAAO,EACrB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,GAC5C,IACA,GACJ,CACT,CAAC;AACN,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EACzB,KAAK,EACL,aAAa,EACb,UAAU,EACV,UAAU,GAAG,KAAK,EAClB,UAAU,EACV,SAAS,EACT,GAAG,KAAK,EACQ;IAChB,MAAM,QAAQ,GAAG,UAAU,IAAI,UAAU,IAAI,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAElF,OAAO,CACH,eACI,SAAS,EAAE,EAAE,CACT,iEAAiE,EACjE,SAAS,CACZ,KACG,KAAK,aAET,eACI,SAAS,EAAE,EAAE,CACT,aAAa,EACb,QAAQ;oBACJ,CAAC,CAAC,cAAc;oBAChB,CAAC,CAAC,iCAAiC,CAC1C,YAEA,KAAK,GACH,EAEP,eAAK,SAAS,EAAC,2BAA2B,aACtC,eACI,SAAS,EAAE,EAAE,CACT,+BAA+B,EAC/B,QAAQ;4BACJ,CAAC,CAAC,cAAc;4BAChB,CAAC,CAAC,2BAA2B,CACpC,YAEA,aAAa,GACX,EAEP,KAAC,gBAAgB,IACb,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,QAAQ,EACpB,IAAI,EAAE,EAAE,GACV,EAEF,gBACI,SAAS,EAAE,EAAE,CACT,sCAAsC,EACtC,QAAQ;4BACJ,CAAC,CAAC,4BAA4B;4BAC9B,CAAC,CAAC,iCAAiC,CAC1C,aAEA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SACpB,IACL,IACJ,CACT,CAAC;AACN,CAAC;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ import { ThemedText } from "../index";
3
+ export type StatusBadgeVariant = "in-progress" | "backlog" | "review" | "done" | "resolved" | "cancelled" | "rejected" | "warning" | "pending" | "neutral";
4
+ export interface StatusBadgeProps extends Omit<React.ComponentProps<typeof ThemedText>, "variant"> {
5
+ variant?: StatusBadgeVariant;
6
+ label?: string;
7
+ dotColor?: string;
8
+ pulse?: boolean;
9
+ size?: "xs" | "sm";
10
+ shape?: "default" | "pill";
11
+ children?: React.ReactNode;
12
+ }
13
+ export declare function StatusBadge({ variant, label, dotColor, pulse, size, shape, children, className, ...props }: StatusBadgeProps): React.JSX.Element;
14
+ export default StatusBadge;