@gostack-framework/ui 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE.md +5 -0
- package/dist/activity/index.d.ts +2 -0
- package/dist/activity/index.js +3 -0
- package/dist/activity/index.js.map +1 -0
- package/dist/clickup/common/InlineNameTab.d.ts +11 -0
- package/dist/clickup/common/InlineNameTab.js +50 -0
- package/dist/clickup/common/InlineNameTab.js.map +1 -0
- package/dist/clickup/common/TaskAssigneeAvatar.d.ts +14 -0
- package/dist/clickup/common/TaskAssigneeAvatar.js +32 -0
- package/dist/clickup/common/TaskAssigneeAvatar.js.map +1 -0
- package/dist/clickup/common/TaskBreadcrumb.d.ts +11 -0
- package/dist/clickup/common/TaskBreadcrumb.js +11 -0
- package/dist/clickup/common/TaskBreadcrumb.js.map +1 -0
- package/dist/clickup/common/TaskCheck.d.ts +10 -0
- package/dist/clickup/common/TaskCheck.js +17 -0
- package/dist/clickup/common/TaskCheck.js.map +1 -0
- package/dist/clickup/common/TaskContextMenu.d.ts +10 -0
- package/dist/clickup/common/TaskContextMenu.js +22 -0
- package/dist/clickup/common/TaskContextMenu.js.map +1 -0
- package/dist/clickup/common/TaskIcon.d.ts +29 -0
- package/dist/clickup/common/TaskIcon.js +30 -0
- package/dist/clickup/common/TaskIcon.js.map +1 -0
- package/dist/clickup/common/TaskPriorityBadge.d.ts +11 -0
- package/dist/clickup/common/TaskPriorityBadge.js +11 -0
- package/dist/clickup/common/TaskPriorityBadge.js.map +1 -0
- package/dist/clickup/common/TaskRowActionMenu.d.ts +6 -0
- package/dist/clickup/common/TaskRowActionMenu.js +10 -0
- package/dist/clickup/common/TaskRowActionMenu.js.map +1 -0
- package/dist/clickup/common/TaskStatusPill.d.ts +12 -0
- package/dist/clickup/common/TaskStatusPill.js +24 -0
- package/dist/clickup/common/TaskStatusPill.js.map +1 -0
- package/dist/clickup/common/WorkspaceButton.d.ts +3 -0
- package/dist/clickup/common/WorkspaceButton.js +8 -0
- package/dist/clickup/common/WorkspaceButton.js.map +1 -0
- package/dist/clickup/common/WorkspaceHeader.d.ts +9 -0
- package/dist/clickup/common/WorkspaceHeader.js +7 -0
- package/dist/clickup/common/WorkspaceHeader.js.map +1 -0
- package/dist/clickup/common/WorkspaceMenus.d.ts +17 -0
- package/dist/clickup/common/WorkspaceMenus.js +15 -0
- package/dist/clickup/common/WorkspaceMenus.js.map +1 -0
- package/dist/clickup/common/WorkspaceMessage.d.ts +7 -0
- package/dist/clickup/common/WorkspaceMessage.js +6 -0
- package/dist/clickup/common/WorkspaceMessage.js.map +1 -0
- package/dist/clickup/common/WorkspaceMetricStrip.d.ts +10 -0
- package/dist/clickup/common/WorkspaceMetricStrip.js +6 -0
- package/dist/clickup/common/WorkspaceMetricStrip.js.map +1 -0
- package/dist/clickup/common/WorkspacePanel.d.ts +7 -0
- package/dist/clickup/common/WorkspacePanel.js +7 -0
- package/dist/clickup/common/WorkspacePanel.js.map +1 -0
- package/dist/clickup/common/WorkspaceSelect.d.ts +5 -0
- package/dist/clickup/common/WorkspaceSelect.js +64 -0
- package/dist/clickup/common/WorkspaceSelect.js.map +1 -0
- package/dist/clickup/common/WorkspaceTable.d.ts +16 -0
- package/dist/clickup/common/WorkspaceTable.js +7 -0
- package/dist/clickup/common/WorkspaceTable.js.map +1 -0
- package/dist/clickup/dialogs/ClickUpCommentComposer.d.ts +9 -0
- package/dist/clickup/dialogs/ClickUpCommentComposer.js +35 -0
- package/dist/clickup/dialogs/ClickUpCommentComposer.js.map +1 -0
- package/dist/clickup/dialogs/ClickUpTaskActions.d.ts +8 -0
- package/dist/clickup/dialogs/ClickUpTaskActions.js +10 -0
- package/dist/clickup/dialogs/ClickUpTaskActions.js.map +1 -0
- package/dist/clickup/dialogs/ClickUpTaskAssignee.d.ts +7 -0
- package/dist/clickup/dialogs/ClickUpTaskAssignee.js +12 -0
- package/dist/clickup/dialogs/ClickUpTaskAssignee.js.map +1 -0
- package/dist/clickup/dialogs/ClickUpTaskDescription.d.ts +12 -0
- package/dist/clickup/dialogs/ClickUpTaskDescription.js +12 -0
- package/dist/clickup/dialogs/ClickUpTaskDescription.js.map +1 -0
- package/dist/clickup/dialogs/ClickUpTaskDialog.d.ts +27 -0
- package/dist/clickup/dialogs/ClickUpTaskDialog.js +35 -0
- package/dist/clickup/dialogs/ClickUpTaskDialog.js.map +1 -0
- package/dist/clickup/dialogs/ClickUpTaskDiscussion.d.ts +11 -0
- package/dist/clickup/dialogs/ClickUpTaskDiscussion.js +29 -0
- package/dist/clickup/dialogs/ClickUpTaskDiscussion.js.map +1 -0
- package/dist/clickup/dialogs/ClickUpTaskMain.d.ts +24 -0
- package/dist/clickup/dialogs/ClickUpTaskMain.js +26 -0
- package/dist/clickup/dialogs/ClickUpTaskMain.js.map +1 -0
- package/dist/clickup/dialogs/ClickUpTaskProperties.d.ts +17 -0
- package/dist/clickup/dialogs/ClickUpTaskProperties.js +26 -0
- package/dist/clickup/dialogs/ClickUpTaskProperties.js.map +1 -0
- package/dist/clickup/elements/TaskCalendarCell.d.ts +14 -0
- package/dist/clickup/elements/TaskCalendarCell.js +19 -0
- package/dist/clickup/elements/TaskCalendarCell.js.map +1 -0
- package/dist/clickup/elements/TaskCard.d.ts +16 -0
- package/dist/clickup/elements/TaskCard.js +51 -0
- package/dist/clickup/elements/TaskCard.js.map +1 -0
- package/dist/clickup/elements/TaskGroup.d.ts +24 -0
- package/dist/clickup/elements/TaskGroup.js +50 -0
- package/dist/clickup/elements/TaskGroup.js.map +1 -0
- package/dist/clickup/elements/TaskRow.d.ts +19 -0
- package/dist/clickup/elements/TaskRow.js +60 -0
- package/dist/clickup/elements/TaskRow.js.map +1 -0
- package/dist/clickup/elements/TaskTableHead.d.ts +1 -0
- package/dist/clickup/elements/TaskTableHead.js +15 -0
- package/dist/clickup/elements/TaskTableHead.js.map +1 -0
- package/dist/clickup/elements/TaskTimelineRow.d.ts +12 -0
- package/dist/clickup/elements/TaskTimelineRow.js +16 -0
- package/dist/clickup/elements/TaskTimelineRow.js.map +1 -0
- package/dist/clickup/index.d.ts +41 -0
- package/dist/clickup/index.js +48 -0
- package/dist/clickup/index.js.map +1 -0
- package/dist/clickup/task-ui.css +864 -0
- package/dist/clickup/toolbar/TaskToolbar.d.ts +20 -0
- package/dist/clickup/toolbar/TaskToolbar.js +16 -0
- package/dist/clickup/toolbar/TaskToolbar.js.map +1 -0
- package/dist/clickup/toolbar/TaskViewPicker.d.ts +8 -0
- package/dist/clickup/toolbar/TaskViewPicker.js +48 -0
- package/dist/clickup/toolbar/TaskViewPicker.js.map +1 -0
- package/dist/clickup/toolbar/TaskViewSwitcher.d.ts +21 -0
- package/dist/clickup/toolbar/TaskViewSwitcher.js +55 -0
- package/dist/clickup/toolbar/TaskViewSwitcher.js.map +1 -0
- package/dist/clickup/types.d.ts +66 -0
- package/dist/clickup/types.js +2 -0
- package/dist/clickup/types.js.map +1 -0
- package/dist/clickup/views/TaskBoardView.d.ts +21 -0
- package/dist/clickup/views/TaskBoardView.js +75 -0
- package/dist/clickup/views/TaskBoardView.js.map +1 -0
- package/dist/clickup/views/TaskCalendarView.d.ts +12 -0
- package/dist/clickup/views/TaskCalendarView.js +197 -0
- package/dist/clickup/views/TaskCalendarView.js.map +1 -0
- package/dist/clickup/views/TaskGanttView.d.ts +12 -0
- package/dist/clickup/views/TaskGanttView.js +64 -0
- package/dist/clickup/views/TaskGanttView.js.map +1 -0
- package/dist/clickup/views/TaskListView.d.ts +22 -0
- package/dist/clickup/views/TaskListView.js +17 -0
- package/dist/clickup/views/TaskListView.js.map +1 -0
- package/dist/clickup/views/TaskTableView.d.ts +21 -0
- package/dist/clickup/views/TaskTableView.js +50 -0
- package/dist/clickup/views/TaskTableView.js.map +1 -0
- package/dist/components/ActivityFeed.d.ts +48 -0
- package/dist/components/ActivityFeed.js +60 -0
- package/dist/components/ActivityFeed.js.map +1 -0
- package/dist/components/AudioPlayer.d.ts +8 -0
- package/dist/components/AudioPlayer.js +96 -0
- package/dist/components/AudioPlayer.js.map +1 -0
- package/dist/components/BulkActionBar.d.ts +10 -0
- package/dist/components/BulkActionBar.js +10 -0
- package/dist/components/BulkActionBar.js.map +1 -0
- package/dist/components/Carousel.d.ts +8 -0
- package/dist/components/Carousel.js +38 -0
- package/dist/components/Carousel.js.map +1 -0
- package/dist/components/ChatBot.d.ts +6 -0
- package/dist/components/ChatBot.js +52 -0
- package/dist/components/ChatBot.js.map +1 -0
- package/dist/components/CheckboxCustom.d.ts +9 -0
- package/dist/components/CheckboxCustom.js +42 -0
- package/dist/components/CheckboxCustom.js.map +1 -0
- package/dist/components/ClickUpTaskModal.d.ts +36 -0
- package/dist/components/ClickUpTaskModal.js +180 -0
- package/dist/components/ClickUpTaskModal.js.map +1 -0
- package/dist/components/ConditionBuilder.d.ts +28 -0
- package/dist/components/ConditionBuilder.js +63 -0
- package/dist/components/ConditionBuilder.js.map +1 -0
- package/dist/components/ConfirmDialog.d.ts +21 -0
- package/dist/components/ConfirmDialog.js +51 -0
- package/dist/components/ConfirmDialog.js.map +1 -0
- package/dist/components/DataCard.d.ts +43 -0
- package/dist/components/DataCard.js +30 -0
- package/dist/components/DataCard.js.map +1 -0
- package/dist/components/DataTable.d.ts +107 -0
- package/dist/components/DataTable.js +153 -0
- package/dist/components/DataTable.js.map +1 -0
- package/dist/components/DatePicker.d.ts +16 -0
- package/dist/components/DatePicker.js +184 -0
- package/dist/components/DatePicker.js.map +1 -0
- package/dist/components/EmptyState.d.ts +26 -0
- package/dist/components/EmptyState.js +37 -0
- package/dist/components/EmptyState.js.map +1 -0
- package/dist/components/Error.d.ts +12 -0
- package/dist/components/Error.js +41 -0
- package/dist/components/Error.js.map +1 -0
- package/dist/components/ErrorState.d.ts +10 -0
- package/dist/components/ErrorState.js +53 -0
- package/dist/components/ErrorState.js.map +1 -0
- package/dist/components/FileAttachmentChip.d.ts +10 -0
- package/dist/components/FileAttachmentChip.js +21 -0
- package/dist/components/FileAttachmentChip.js.map +1 -0
- package/dist/components/FilterConditionChip.d.ts +10 -0
- package/dist/components/FilterConditionChip.js +11 -0
- package/dist/components/FilterConditionChip.js.map +1 -0
- package/dist/components/GalleryCarouselDialog.d.ts +14 -0
- package/dist/components/GalleryCarouselDialog.js +167 -0
- package/dist/components/GalleryCarouselDialog.js.map +1 -0
- package/dist/components/HierarchicalSelectionMenu.d.ts +21 -0
- package/dist/components/HierarchicalSelectionMenu.js +168 -0
- package/dist/components/HierarchicalSelectionMenu.js.map +1 -0
- package/dist/components/InfiniteSelect.d.ts +44 -0
- package/dist/components/InfiniteSelect.js +121 -0
- package/dist/components/InfiniteSelect.js.map +1 -0
- package/dist/components/LoadingState.d.ts +28 -0
- package/dist/components/LoadingState.js +24 -0
- package/dist/components/LoadingState.js.map +1 -0
- package/dist/components/LucidIconRender.d.ts +9 -0
- package/dist/components/LucidIconRender.js +7 -0
- package/dist/components/LucidIconRender.js.map +1 -0
- package/dist/components/MasterDetailLayout.d.ts +67 -0
- package/dist/components/MasterDetailLayout.js +79 -0
- package/dist/components/MasterDetailLayout.js.map +1 -0
- package/dist/components/PinnedAttributeRow.d.ts +12 -0
- package/dist/components/PinnedAttributeRow.js +11 -0
- package/dist/components/PinnedAttributeRow.js.map +1 -0
- package/dist/components/PopUp.d.ts +11 -0
- package/dist/components/PopUp.js +83 -0
- package/dist/components/PopUp.js.map +1 -0
- package/dist/components/PrioritySignal.d.ts +10 -0
- package/dist/components/PrioritySignal.js +54 -0
- package/dist/components/PrioritySignal.js.map +1 -0
- package/dist/components/RichTextEditor.d.ts +7 -0
- package/dist/components/RichTextEditor.js +252 -0
- package/dist/components/RichTextEditor.js.map +1 -0
- package/dist/components/SLACountdown.d.ts +15 -0
- package/dist/components/SLACountdown.js +26 -0
- package/dist/components/SLACountdown.js.map +1 -0
- package/dist/components/StatusBadge.d.ts +14 -0
- package/dist/components/StatusBadge.js +55 -0
- package/dist/components/StatusBadge.js.map +1 -0
- package/dist/components/StatusCards.d.ts +12 -0
- package/dist/components/StatusCards.js +12 -0
- package/dist/components/StatusCards.js.map +1 -0
- package/dist/components/StatusProgressBar.d.ts +18 -0
- package/dist/components/StatusProgressBar.js +50 -0
- package/dist/components/StatusProgressBar.js.map +1 -0
- package/dist/components/TableActions.d.ts +26 -0
- package/dist/components/TableActions.js +49 -0
- package/dist/components/TableActions.js.map +1 -0
- package/dist/components/TaskDetailsModal.d.ts +3 -0
- package/dist/components/TaskDetailsModal.js +8 -0
- package/dist/components/TaskDetailsModal.js.map +1 -0
- package/dist/components/ThemedText.d.ts +24 -0
- package/dist/components/ThemedText.js +103 -0
- package/dist/components/ThemedText.js.map +1 -0
- package/dist/components/TicketWorkspaceLayout.d.ts +11 -0
- package/dist/components/TicketWorkspaceLayout.js +7 -0
- package/dist/components/TicketWorkspaceLayout.js.map +1 -0
- package/dist/components/TimePicker.d.ts +15 -0
- package/dist/components/TimePicker.js +96 -0
- package/dist/components/TimePicker.js.map +1 -0
- package/dist/components/Tooltip.d.ts +19 -0
- package/dist/components/Tooltip.js +75 -0
- package/dist/components/Tooltip.js.map +1 -0
- package/dist/components/TreeView.d.ts +33 -0
- package/dist/components/TreeView.js +55 -0
- package/dist/components/TreeView.js.map +1 -0
- package/dist/components/accordion.d.ts +6 -0
- package/dist/components/accordion.js +18 -0
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/avatar.d.ts +11 -0
- package/dist/components/avatar.js +23 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/badge.d.ts +12 -0
- package/dist/components/badge.js +44 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/button.d.ts +15 -0
- package/dist/components/button.js +47 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/card.d.ts +11 -0
- package/dist/components/card.js +25 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/context menu core/context-menu.d.ts +28 -0
- package/dist/components/context menu core/context-menu.js +91 -0
- package/dist/components/context menu core/context-menu.js.map +1 -0
- package/dist/components/context menu core/contextMenuAdvanced.d.ts +46 -0
- package/dist/components/context menu core/contextMenuAdvanced.js +34 -0
- package/dist/components/context menu core/contextMenuAdvanced.js.map +1 -0
- package/dist/components/dialog.d.ts +18 -0
- package/dist/components/dialog.js +42 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/dropdown-menu.d.ts +29 -0
- package/dist/components/dropdown-menu.js +51 -0
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/filter/AdvancedFilters.d.ts +14 -0
- package/dist/components/filter/AdvancedFilters.js +220 -0
- package/dist/components/filter/AdvancedFilters.js.map +1 -0
- package/dist/components/filter/Filter.d.ts +48 -0
- package/dist/components/filter/Filter.js +153 -0
- package/dist/components/filter/Filter.js.map +1 -0
- package/dist/components/filter/FilterButton.d.ts +10 -0
- package/dist/components/filter/FilterButton.js +9 -0
- package/dist/components/filter/FilterButton.js.map +1 -0
- package/dist/components/filter/NormalFilters.d.ts +14 -0
- package/dist/components/filter/NormalFilters.js +40 -0
- package/dist/components/filter/NormalFilters.js.map +1 -0
- package/dist/components/filter/index.d.ts +5 -0
- package/dist/components/filter/index.js +6 -0
- package/dist/components/filter/index.js.map +1 -0
- package/dist/components/filter/types.d.ts +32 -0
- package/dist/components/filter/types.js +2 -0
- package/dist/components/filter/types.js.map +1 -0
- package/dist/components/form-error.d.ts +42 -0
- package/dist/components/form-error.js +103 -0
- package/dist/components/form-error.js.map +1 -0
- package/dist/components/icons.d.ts +19 -0
- package/dist/components/icons.js +21 -0
- package/dist/components/icons.js.map +1 -0
- package/dist/components/image.d.ts +12 -0
- package/dist/components/image.js +18 -0
- package/dist/components/image.js.map +1 -0
- package/dist/components/index.d.ts +59 -0
- package/dist/components/index.js +60 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/input.d.ts +22 -0
- package/dist/components/input.js +102 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/label.d.ts +7 -0
- package/dist/components/label.js +8 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/layout/FeatureLayout.d.ts +131 -0
- package/dist/components/layout/FeatureLayout.js +113 -0
- package/dist/components/layout/FeatureLayout.js.map +1 -0
- package/dist/components/layout/FeatureLayoutExportButton.d.ts +10 -0
- package/dist/components/layout/FeatureLayoutExportButton.js +21 -0
- package/dist/components/layout/FeatureLayoutExportButton.js.map +1 -0
- package/dist/components/layout/FeatureLayoutTabs.d.ts +36 -0
- package/dist/components/layout/FeatureLayoutTabs.js +192 -0
- package/dist/components/layout/FeatureLayoutTabs.js.map +1 -0
- package/dist/components/layout/kanban/FeatureLayoutKanban.d.ts +6 -0
- package/dist/components/layout/kanban/FeatureLayoutKanban.js +195 -0
- package/dist/components/layout/kanban/FeatureLayoutKanban.js.map +1 -0
- package/dist/components/layout/kanban/KanbanCard.d.ts +12 -0
- package/dist/components/layout/kanban/KanbanCard.js +43 -0
- package/dist/components/layout/kanban/KanbanCard.js.map +1 -0
- package/dist/components/layout/kanban/KanbanColumn.d.ts +23 -0
- package/dist/components/layout/kanban/KanbanColumn.js +30 -0
- package/dist/components/layout/kanban/KanbanColumn.js.map +1 -0
- package/dist/components/layout/kanban/KanbanToolbar.d.ts +11 -0
- package/dist/components/layout/kanban/KanbanToolbar.js +10 -0
- package/dist/components/layout/kanban/KanbanToolbar.js.map +1 -0
- package/dist/components/layout/kanban/index.d.ts +6 -0
- package/dist/components/layout/kanban/index.js +7 -0
- package/dist/components/layout/kanban/index.js.map +1 -0
- package/dist/components/layout/kanban/types.d.ts +67 -0
- package/dist/components/layout/kanban/types.js +2 -0
- package/dist/components/layout/kanban/types.js.map +1 -0
- package/dist/components/popover.d.ts +11 -0
- package/dist/components/popover.js +20 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/react-flow/FlowGraphHeader.d.ts +2 -0
- package/dist/components/react-flow/FlowGraphHeader.js +10 -0
- package/dist/components/react-flow/FlowGraphHeader.js.map +1 -0
- package/dist/components/react-flow/GlowEdge.d.ts +3 -0
- package/dist/components/react-flow/GlowEdge.js +100 -0
- package/dist/components/react-flow/GlowEdge.js.map +1 -0
- package/dist/components/react-flow/ReactFlowCanvas.d.ts +7 -0
- package/dist/components/react-flow/ReactFlowCanvas.js +44 -0
- package/dist/components/react-flow/ReactFlowCanvas.js.map +1 -0
- package/dist/components/react-flow/RelationshipFlow.d.ts +2 -0
- package/dist/components/react-flow/RelationshipFlow.js +9 -0
- package/dist/components/react-flow/RelationshipFlow.js.map +1 -0
- package/dist/components/react-flow/TreeFlowLayout.d.ts +29 -0
- package/dist/components/react-flow/TreeFlowLayout.js +14 -0
- package/dist/components/react-flow/TreeFlowLayout.js.map +1 -0
- package/dist/components/react-flow/edges.d.ts +8 -0
- package/dist/components/react-flow/edges.js +21 -0
- package/dist/components/react-flow/edges.js.map +1 -0
- package/dist/components/react-flow/index.d.ts +9 -0
- package/dist/components/react-flow/index.js +10 -0
- package/dist/components/react-flow/index.js.map +1 -0
- package/dist/components/react-flow/layout.d.ts +5 -0
- package/dist/components/react-flow/layout.js +11 -0
- package/dist/components/react-flow/layout.js.map +1 -0
- package/dist/components/react-flow/types.d.ts +82 -0
- package/dist/components/react-flow/types.js +6 -0
- package/dist/components/react-flow/types.js.map +1 -0
- package/dist/components/react-flow/useFlowGraph.d.ts +3 -0
- package/dist/components/react-flow/useFlowGraph.js +22 -0
- package/dist/components/react-flow/useFlowGraph.js.map +1 -0
- package/dist/components/react-flow/useFlowGraphSync.d.ts +4 -0
- package/dist/components/react-flow/useFlowGraphSync.js +43 -0
- package/dist/components/react-flow/useFlowGraphSync.js.map +1 -0
- package/dist/components/select.d.ts +23 -0
- package/dist/components/select.js +109 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/sonner.d.ts +4 -0
- package/dist/components/sonner.js +29 -0
- package/dist/components/sonner.js.map +1 -0
- package/dist/components/stepper.d.ts +12 -0
- package/dist/components/stepper.js +22 -0
- package/dist/components/stepper.js.map +1 -0
- package/dist/components/switch.d.ts +5 -0
- package/dist/components/switch.js +16 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table.d.ts +52 -0
- package/dist/components/table.js +112 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabs.d.ts +10 -0
- package/dist/components/tabs.js +29 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/textarea.d.ts +6 -0
- package/dist/components/textarea.js +17 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/condition-builder/index.d.ts +2 -0
- package/dist/condition-builder/index.js +3 -0
- package/dist/condition-builder/index.js.map +1 -0
- package/dist/context-menu/index.d.ts +2 -0
- package/dist/context-menu/index.js +3 -0
- package/dist/context-menu/index.js.map +1 -0
- package/dist/dropdown/SearchDropdown.d.ts +19 -0
- package/dist/dropdown/SearchDropdown.js +27 -0
- package/dist/dropdown/SearchDropdown.js.map +1 -0
- package/dist/dropdown/index.d.ts +2 -0
- package/dist/dropdown/index.js +3 -0
- package/dist/dropdown/index.js.map +1 -0
- package/dist/editor.d.ts +1 -0
- package/dist/editor.js +2 -0
- package/dist/editor.js.map +1 -0
- package/dist/feedback/index.d.ts +6 -0
- package/dist/feedback/index.js +7 -0
- package/dist/feedback/index.js.map +1 -0
- package/dist/flow.d.ts +1 -0
- package/dist/flow.js +2 -0
- package/dist/flow.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.js +4 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useContextMenuActions.d.ts +16 -0
- package/dist/hooks/useContextMenuActions.js +35 -0
- package/dist/hooks/useContextMenuActions.js.map +1 -0
- package/dist/hooks/useFeatureLayout.d.ts +14 -0
- package/dist/hooks/useFeatureLayout.js +21 -0
- package/dist/hooks/useFeatureLayout.js.map +1 -0
- package/dist/hooks/useTableActions.d.ts +46 -0
- package/dist/hooks/useTableActions.js +71 -0
- package/dist/hooks/useTableActions.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations.d.ts +42 -0
- package/dist/integrations.js +9 -0
- package/dist/integrations.js.map +1 -0
- package/dist/itsm/index.d.ts +7 -0
- package/dist/itsm/index.js +8 -0
- package/dist/itsm/index.js.map +1 -0
- package/dist/locales/ar.json +149 -0
- package/dist/locales/en.json +149 -0
- package/dist/primitives/index.d.ts +11 -0
- package/dist/primitives/index.js +12 -0
- package/dist/primitives/index.js.map +1 -0
- package/dist/progress.d.ts +7 -0
- package/dist/progress.js +20 -0
- package/dist/progress.js.map +1 -0
- package/dist/select/index.d.ts +3 -0
- package/dist/select/index.js +4 -0
- package/dist/select/index.js.map +1 -0
- package/dist/styles.css +2 -0
- package/dist/support/api.d.ts +8 -0
- package/dist/support/api.js +2 -0
- package/dist/support/api.js.map +1 -0
- package/dist/support/types/file.types.d.ts +12 -0
- package/dist/support/types/file.types.js +2 -0
- package/dist/support/types/file.types.js.map +1 -0
- package/dist/support/types/gallery.types.d.ts +22 -0
- package/dist/support/types/gallery.types.js +2 -0
- package/dist/support/types/gallery.types.js.map +1 -0
- package/dist/support/types/governorates.types.d.ts +12 -0
- package/dist/support/types/governorates.types.js +2 -0
- package/dist/support/types/governorates.types.js.map +1 -0
- package/dist/support/types/grade.types.d.ts +7 -0
- package/dist/support/types/grade.types.js +2 -0
- package/dist/support/types/grade.types.js.map +1 -0
- package/dist/support/types/index.d.ts +13 -0
- package/dist/support/types/index.js +14 -0
- package/dist/support/types/index.js.map +1 -0
- package/dist/support/types/metadata.types.d.ts +61 -0
- package/dist/support/types/metadata.types.js +3 -0
- package/dist/support/types/metadata.types.js.map +1 -0
- package/dist/support/types/table.types.d.ts +33 -0
- package/dist/support/types/table.types.js +2 -0
- package/dist/support/types/table.types.js.map +1 -0
- package/dist/support/types/viewCard.types.d.ts +78 -0
- package/dist/support/types/viewCard.types.js +3 -0
- package/dist/support/types/viewCard.types.js.map +1 -0
- package/dist/support/utils/fileUtils.d.ts +1 -0
- package/dist/support/utils/fileUtils.js +2 -0
- package/dist/support/utils/fileUtils.js.map +1 -0
- package/dist/support/utils.d.ts +5 -0
- package/dist/support/utils.js +4 -0
- package/dist/support/utils.js.map +1 -0
- package/dist/table/index.d.ts +6 -0
- package/dist/table/index.js +7 -0
- package/dist/table/index.js.map +1 -0
- package/dist/tasks.d.ts +3 -0
- package/dist/tasks.js +4 -0
- package/dist/tasks.js.map +1 -0
- package/dist/tours/TourContext.d.ts +33 -0
- package/dist/tours/TourContext.js +98 -0
- package/dist/tours/TourContext.js.map +1 -0
- package/dist/tours/TourOverlay.d.ts +7 -0
- package/dist/tours/TourOverlay.js +129 -0
- package/dist/tours/TourOverlay.js.map +1 -0
- package/dist/tours.d.ts +2 -0
- package/dist/tours.js +3 -0
- package/dist/tours.js.map +1 -0
- package/dist/types.d.ts +91 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/dist/typography/index.d.ts +4 -0
- package/dist/typography/index.js +5 -0
- package/dist/typography/index.js.map +1 -0
- package/dist/typography/typography.adapter.d.ts +18 -0
- package/dist/typography/typography.adapter.js +113 -0
- package/dist/typography/typography.adapter.js.map +1 -0
- package/dist/typography/typography.constants.d.ts +56 -0
- package/dist/typography/typography.constants.js +649 -0
- package/dist/typography/typography.constants.js.map +1 -0
- package/dist/typography/typography.types.d.ts +62 -0
- package/dist/typography/typography.types.js +6 -0
- package/dist/typography/typography.types.js.map +1 -0
- package/dist/typography/useTypography.d.ts +25 -0
- package/dist/typography/useTypography.js +158 -0
- package/dist/typography/useTypography.js.map +1 -0
- package/dist/ui/accordion.d.ts +7 -0
- package/dist/ui/accordion.js +18 -0
- package/dist/ui/accordion.js.map +1 -0
- package/dist/ui/avatar.d.ts +11 -0
- package/dist/ui/avatar.js +23 -0
- package/dist/ui/avatar.js.map +1 -0
- package/dist/ui/badge.d.ts +10 -0
- package/dist/ui/badge.js +33 -0
- package/dist/ui/badge.js.map +1 -0
- package/dist/ui/button.d.ts +11 -0
- package/dist/ui/button.js +41 -0
- package/dist/ui/button.js.map +1 -0
- package/dist/ui/card.d.ts +9 -0
- package/dist/ui/card.js +25 -0
- package/dist/ui/card.js.map +1 -0
- package/dist/ui/dialog.d.ts +17 -0
- package/dist/ui/dialog.js +37 -0
- package/dist/ui/dialog.js.map +1 -0
- package/dist/ui/dropdown-menu.d.ts +25 -0
- package/dist/ui/dropdown-menu.js +51 -0
- package/dist/ui/dropdown-menu.js.map +1 -0
- package/dist/ui/index.d.ts +15 -0
- package/dist/ui/index.js +16 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/input.d.ts +3 -0
- package/dist/ui/input.js +7 -0
- package/dist/ui/input.js.map +1 -0
- package/dist/ui/popover.d.ts +10 -0
- package/dist/ui/popover.js +26 -0
- package/dist/ui/popover.js.map +1 -0
- package/dist/ui/select.d.ts +15 -0
- package/dist/ui/select.js +38 -0
- package/dist/ui/select.js.map +1 -0
- package/dist/ui/switch.d.ts +6 -0
- package/dist/ui/switch.js +8 -0
- package/dist/ui/switch.js.map +1 -0
- package/dist/ui/table.d.ts +10 -0
- package/dist/ui/table.js +28 -0
- package/dist/ui/table.js.map +1 -0
- package/dist/ui/tabs.d.ts +11 -0
- package/dist/ui/tabs.js +29 -0
- package/dist/ui/tabs.js.map +1 -0
- package/dist/ui/textarea.d.ts +3 -0
- package/dist/ui/textarea.js +7 -0
- package/dist/ui/textarea.js.map +1 -0
- package/dist/ui/tooltip.d.ts +7 -0
- package/dist/ui/tooltip.js +17 -0
- package/dist/ui/tooltip.js.map +1 -0
- package/dist/workspace/index.d.ts +2 -0
- package/dist/workspace/index.js +3 -0
- package/dist/workspace/index.js.map +1 -0
- package/package.json +61 -4
- package/src/activity/index.ts +2 -0
- package/src/clickup/common/InlineNameTab.tsx +122 -0
- package/src/clickup/common/TaskAssigneeAvatar.tsx +127 -0
- package/src/clickup/common/TaskBreadcrumb.tsx +91 -0
- package/src/clickup/common/TaskCheck.tsx +51 -0
- package/src/clickup/common/TaskContextMenu.tsx +42 -0
- package/src/clickup/common/TaskIcon.tsx +145 -0
- package/src/clickup/common/TaskPriorityBadge.tsx +52 -0
- package/src/clickup/common/TaskRowActionMenu.tsx +43 -0
- package/src/clickup/common/TaskStatusPill.tsx +73 -0
- package/src/clickup/common/WorkspaceButton.tsx +22 -0
- package/src/clickup/common/WorkspaceHeader.tsx +41 -0
- package/src/clickup/common/WorkspaceMenus.tsx +92 -0
- package/src/clickup/common/WorkspaceMessage.tsx +39 -0
- package/src/clickup/common/WorkspaceMetricStrip.tsx +49 -0
- package/src/clickup/common/WorkspacePanel.tsx +27 -0
- package/src/clickup/common/WorkspaceSelect.tsx +173 -0
- package/src/clickup/common/WorkspaceTable.tsx +78 -0
- package/src/clickup/dialogs/ClickUpCommentComposer.tsx +93 -0
- package/src/clickup/dialogs/ClickUpTaskActions.tsx +73 -0
- package/src/clickup/dialogs/ClickUpTaskAssignee.tsx +86 -0
- package/src/clickup/dialogs/ClickUpTaskDescription.tsx +67 -0
- package/src/clickup/dialogs/ClickUpTaskDialog.tsx +187 -0
- package/src/clickup/dialogs/ClickUpTaskDiscussion.tsx +136 -0
- package/src/clickup/dialogs/ClickUpTaskMain.tsx +156 -0
- package/src/clickup/dialogs/ClickUpTaskProperties.tsx +214 -0
- package/src/clickup/elements/TaskCalendarCell.tsx +91 -0
- package/src/clickup/elements/TaskCard.tsx +154 -0
- package/src/clickup/elements/TaskGroup.tsx +208 -0
- package/src/clickup/elements/TaskRow.tsx +172 -0
- package/src/clickup/elements/TaskTableHead.tsx +29 -0
- package/src/clickup/elements/TaskTimelineRow.tsx +77 -0
- package/src/clickup/index.ts +63 -0
- package/src/clickup/task-ui.css +864 -0
- package/src/clickup/toolbar/TaskToolbar.tsx +130 -0
- package/src/clickup/toolbar/TaskViewPicker.tsx +148 -0
- package/src/clickup/toolbar/TaskViewSwitcher.tsx +129 -0
- package/src/clickup/types.ts +79 -0
- package/src/clickup/views/TaskBoardView.tsx +259 -0
- package/src/clickup/views/TaskCalendarView.tsx +410 -0
- package/src/clickup/views/TaskGanttView.tsx +178 -0
- package/src/clickup/views/TaskListView.tsx +95 -0
- package/src/clickup/views/TaskTableView.tsx +192 -0
- package/src/components/ActivityFeed.tsx +440 -0
- package/src/components/AudioPlayer.tsx +179 -0
- package/src/components/BulkActionBar.tsx +72 -0
- package/src/components/Carousel.tsx +107 -0
- package/src/components/ChatBot.tsx +205 -0
- package/src/components/CheckboxCustom.tsx +106 -0
- package/src/components/ClickUpTaskModal.tsx +661 -0
- package/src/components/ConditionBuilder.tsx +322 -0
- package/src/components/ConfirmDialog.tsx +157 -0
- package/src/components/DataCard.tsx +203 -0
- package/src/components/DataTable.tsx +609 -0
- package/src/components/DatePicker.tsx +397 -0
- package/src/components/EmptyState.tsx +105 -0
- package/src/components/Error.tsx +248 -0
- package/src/components/ErrorState.tsx +199 -0
- package/src/components/FileAttachmentChip.tsx +84 -0
- package/src/components/FilterConditionChip.tsx +56 -0
- package/src/components/GalleryCarouselDialog.tsx +439 -0
- package/src/components/HierarchicalSelectionMenu.tsx +432 -0
- package/src/components/InfiniteSelect.tsx +397 -0
- package/src/components/LoadingState.tsx +105 -0
- package/src/components/LucidIconRender.tsx +25 -0
- package/src/components/MasterDetailLayout.tsx +442 -0
- package/src/components/PinnedAttributeRow.tsx +70 -0
- package/src/components/PopUp.tsx +309 -0
- package/src/components/PrioritySignal.tsx +131 -0
- package/src/components/RichTextEditor.tsx +433 -0
- package/src/components/SLACountdown.tsx +133 -0
- package/src/components/StatusBadge.tsx +119 -0
- package/src/components/StatusCards.tsx +78 -0
- package/src/components/StatusProgressBar.tsx +158 -0
- package/src/components/TableActions.tsx +182 -0
- package/src/components/TaskDetailsModal.tsx +7 -0
- package/src/components/ThemedText.tsx +181 -0
- package/src/components/TicketWorkspaceLayout.tsx +63 -0
- package/src/components/TimePicker.tsx +283 -0
- package/src/components/Tooltip.tsx +128 -0
- package/src/components/TreeView.tsx +297 -0
- package/src/components/accordion.tsx +78 -0
- package/src/components/avatar.tsx +107 -0
- package/src/components/badge.tsx +72 -0
- package/src/components/button.tsx +93 -0
- package/src/components/card.tsx +103 -0
- package/src/components/context menu core/context-menu.tsx +304 -0
- package/src/components/context menu core/contextMenuAdvanced.tsx +130 -0
- package/src/components/dialog.tsx +186 -0
- package/src/components/dropdown-menu.tsx +274 -0
- package/src/components/filter/AdvancedFilters.tsx +834 -0
- package/src/components/filter/Filter.tsx +233 -0
- package/src/components/filter/FilterButton.tsx +38 -0
- package/src/components/filter/NormalFilters.tsx +109 -0
- package/src/components/filter/index.ts +5 -0
- package/src/components/filter/types.ts +36 -0
- package/src/components/form-error.tsx +172 -0
- package/src/components/icons.tsx +468 -0
- package/src/components/image.tsx +85 -0
- package/src/components/index.ts +59 -0
- package/src/components/input.tsx +260 -0
- package/src/components/label.tsx +27 -0
- package/src/components/layout/FeatureLayout.tsx +739 -0
- package/src/components/layout/FeatureLayoutExportButton.tsx +93 -0
- package/src/components/layout/FeatureLayoutTabs.tsx +413 -0
- package/src/components/layout/kanban/FeatureLayoutKanban.tsx +386 -0
- package/src/components/layout/kanban/KanbanCard.tsx +132 -0
- package/src/components/layout/kanban/KanbanColumn.tsx +241 -0
- package/src/components/layout/kanban/KanbanToolbar.tsx +77 -0
- package/src/components/layout/kanban/index.ts +6 -0
- package/src/components/layout/kanban/types.ts +96 -0
- package/src/components/popover.tsx +66 -0
- package/src/components/react-flow/FlowGraphHeader.tsx +68 -0
- package/src/components/react-flow/GlowEdge.tsx +238 -0
- package/src/components/react-flow/ReactFlowCanvas.tsx +112 -0
- package/src/components/react-flow/RelationshipFlow.tsx +50 -0
- package/src/components/react-flow/TreeFlowLayout.tsx +187 -0
- package/src/components/react-flow/edges.ts +39 -0
- package/src/components/react-flow/index.ts +9 -0
- package/src/components/react-flow/layout.ts +16 -0
- package/src/components/react-flow/types.ts +103 -0
- package/src/components/react-flow/useFlowGraph.ts +36 -0
- package/src/components/react-flow/useFlowGraphSync.ts +67 -0
- package/src/components/select.tsx +386 -0
- package/src/components/sonner.tsx +58 -0
- package/src/components/stepper.tsx +97 -0
- package/src/components/switch.tsx +46 -0
- package/src/components/table.tsx +577 -0
- package/src/components/tabs.tsx +81 -0
- package/src/components/textarea.tsx +67 -0
- package/src/condition-builder/index.ts +2 -0
- package/src/context-menu/index.ts +2 -0
- package/src/dropdown/SearchDropdown.tsx +145 -0
- package/src/dropdown/index.ts +2 -0
- package/src/editor.ts +1 -0
- package/src/feedback/index.ts +6 -0
- package/src/flow.ts +1 -0
- package/src/hooks/index.ts +3 -0
- package/src/hooks/useContextMenuActions.ts +69 -0
- package/src/hooks/useFeatureLayout.ts +44 -0
- package/src/hooks/useTableActions.ts +146 -0
- package/src/index.ts +27 -0
- package/src/integrations.tsx +11 -0
- package/src/itsm/index.ts +7 -0
- package/src/locales/ar.json +149 -0
- package/src/locales/en.json +149 -0
- package/src/primitives/index.ts +11 -0
- package/src/progress.tsx +87 -0
- package/src/select/index.ts +3 -0
- package/src/support/api.ts +1 -0
- package/src/support/types/file.types.ts +13 -0
- package/src/support/types/gallery.types.ts +22 -0
- package/src/support/types/governorates.types.ts +13 -0
- package/src/support/types/grade.types.ts +7 -0
- package/src/support/types/index.ts +14 -0
- package/src/support/types/metadata.types.ts +93 -0
- package/src/support/types/table.types.ts +45 -0
- package/src/support/types/viewCard.types.ts +100 -0
- package/src/support/utils/fileUtils.ts +1 -0
- package/src/support/utils.ts +3 -0
- package/src/table/index.ts +6 -0
- package/src/tasks.ts +3 -0
- package/src/tours/TourContext.tsx +142 -0
- package/src/tours/TourOverlay.tsx +281 -0
- package/src/tours.ts +2 -0
- package/src/types.ts +138 -0
- package/src/typography/index.ts +4 -0
- package/src/typography/typography.adapter.ts +131 -0
- package/src/typography/typography.constants.ts +700 -0
- package/src/typography/typography.types.ts +156 -0
- package/src/typography/useTypography.ts +211 -0
- package/src/ui/accordion.tsx +66 -0
- package/src/ui/avatar.tsx +106 -0
- package/src/ui/badge.tsx +58 -0
- package/src/ui/button.tsx +69 -0
- package/src/ui/card.tsx +97 -0
- package/src/ui/dialog.tsx +165 -0
- package/src/ui/dropdown-menu.tsx +262 -0
- package/src/ui/index.ts +15 -0
- package/src/ui/input.tsx +22 -0
- package/src/ui/popover.tsx +86 -0
- package/src/ui/select.tsx +193 -0
- package/src/ui/switch.tsx +32 -0
- package/src/ui/table.tsx +119 -0
- package/src/ui/tabs.tsx +89 -0
- package/src/ui/textarea.tsx +21 -0
- package/src/ui/tooltip.tsx +54 -0
- package/src/workspace/index.ts +2 -0
- package/styles.css +532 -0
- package/README.md +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"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":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAmBtC,MAAM,UAAU,GAAG,CACf,QAAiB,EACqE,EAAE;IACxF,MAAM,IAAI,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAElD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACjE,OAAO;YACH,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,cAAc;YACrB,KAAK,EAAE,YAAY;YACnB,YAAY,EAAE,UAAU;YACxB,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACzC,OAAO;YACH,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,gBAAgB;YACvB,KAAK,EAAE,cAAc;YACrB,YAAY,EAAE,MAAM;YACpB,OAAO,EAAE,KAAK;SACjB,CAAC;IACN,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAClE,OAAO;YACH,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,iCAAiC;YACxC,KAAK,EAAE,+BAA+B;YACtC,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,KAAK;SACjB,CAAC;IACN,CAAC;IACD,4BAA4B;IAC5B,OAAO;QACH,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,gBAAgB;QACvB,YAAY,EAAE,QAAQ;QACtB,OAAO,EAAE,KAAK;KACjB,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,EAC3B,KAAK,GAAG,QAAQ,EAChB,KAAK,EACL,SAAS,GAAG,IAAI,EAChB,IAAI,GAAG,IAAI,EACX,SAAS,EACT,GAAG,KAAK,EACU;IAClB,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG,KAAK,IAAI,MAAM,CAAC,YAAY,CAAC;IAElD,OAAO,CACH,gBACI,SAAS,EAAE,EAAE,CACT,uDAAuD,EACvD,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EACzC,SAAS,CACZ,KACG,KAAK,aAER,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CACd,eAAM,SAAS,EAAC,+DAA+D,YAC3E,KAAC,WAAW,IAAC,SAAS,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,GAAI,GAClE,CACV,CAAC,CAAC,CAAC,CACA,gBACI,SAAS,EAAC,0EAA0E,iBACxE,MAAM,aAElB,eACI,SAAS,EAAE,EAAE,CACT,wCAAwC,EACxC,SAAS,EACT,MAAM,CAAC,IAAI,IAAI,CAAC;4BACZ,CAAC,CAAC,MAAM,CAAC,KAAK;4BACd,CAAC,CAAC,qBAAqB,CAC9B,GACH,EACF,eACI,SAAS,EAAE,EAAE,CACT,wCAAwC,EACxC,SAAS,EACT,MAAM,CAAC,IAAI,IAAI,CAAC;4BACZ,CAAC,CAAC,MAAM,CAAC,KAAK;4BACd,CAAC,CAAC,qBAAqB,CAC9B,GACH,EACF,eACI,SAAS,EAAE,EAAE,CACT,wCAAwC,EACxC,UAAU,EACV,MAAM,CAAC,IAAI,IAAI,CAAC;4BACZ,CAAC,CAAC,MAAM,CAAC,KAAK;4BACd,CAAC,CAAC,qBAAqB,CAC9B,GACH,IACC,CACV,EACA,SAAS,IAAI,CACV,eAAM,SAAS,EAAC,uCAAuC,YAClD,YAAY,GACV,CACV,IACE,CACV,CAAC;AACN,CAAC;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -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;
|