@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,37 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* EmptyState Component
|
|
4
|
+
*
|
|
5
|
+
* Placeholder for empty data states.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* // Basic empty state
|
|
10
|
+
* <EmptyState title="No courses found" />
|
|
11
|
+
*
|
|
12
|
+
* // With action
|
|
13
|
+
* <EmptyState
|
|
14
|
+
* title="No courses yet"
|
|
15
|
+
* message="Create your first course to get started"
|
|
16
|
+
* action={{ label: 'Create Course', onClick: () => navigate('/courses/create') }}
|
|
17
|
+
* />
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
import { useTranslation } from "react-i18next";
|
|
21
|
+
import { ThemedText } from "../index.js";
|
|
22
|
+
/**
|
|
23
|
+
* Default empty icon
|
|
24
|
+
*/
|
|
25
|
+
function EmptyIcon({ className = "w-12 h-12" }) {
|
|
26
|
+
return (_jsx("div", { className: "flex items-center justify-center p-3 rounded-xl bg-dashboard-card/50 border border-dashboard-border shadow-xs mb-1", children: _jsx("svg", { className: `${className} text-dashboard-muted-foreground/60`, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "1.5", d: "M20 13V6a2 2 0 00-2-2H6a2 2 0 00-2 2v7m16 0v5a2 2 0 01-2 2H6a2 2 0 01-2-2v-5m16 0h-2.586a1 1 0 00-.707.293l-2.414 2.414a1 1 0 01-.707.293h-3.172a1 1 0 01-.707-.293l-2.414-2.414A1 1 0 006.586 13H4" }) }) }));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Empty state component
|
|
30
|
+
*/
|
|
31
|
+
export function EmptyState({ title, message, icon, action, className = "", testId, }) {
|
|
32
|
+
const { t } = useTranslation();
|
|
33
|
+
const defaultTitle = t("common.noData", "No data found");
|
|
34
|
+
return (_jsxs("div", { className: `flex flex-col items-center justify-center p-8 text-center ${className}`, "data-testid": testId, children: [icon || _jsx(EmptyIcon, {}), _jsx(ThemedText, { as: "h3", className: "mt-3 text-sm font-semibold text-dashboard-foreground", children: title || defaultTitle }), message && (_jsx(ThemedText, { as: "p", className: "mt-1.5 text-xs text-dashboard-muted-foreground max-w-sm", children: message })), action && (_jsx("button", { onClick: action.onClick, disabled: action.disabled || action.loading, className: "mt-4 px-3.5 py-1.5 bg-dashboard-primary text-white text-xs font-medium rounded-lg hover:bg-dashboard-primary/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed shadow-xs cursor-pointer", children: action.loading ? (_jsxs(ThemedText, { as: "span", className: "flex items-center gap-2", children: [_jsx("span", { className: "animate-spin h-3.5 w-3.5 border-2 border-current border-t-transparent rounded-full" }), action.label] })) : (_jsxs(ThemedText, { as: "span", className: "inline-flex items-center gap-1.5", children: [action.icon && _jsx(ThemedText, { as: "span", children: action.icon }), action.label] })) }))] }));
|
|
35
|
+
}
|
|
36
|
+
export default EmptyState;
|
|
37
|
+
//# sourceMappingURL=EmptyState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyState.js","sourceRoot":"","sources":["../../src/components/EmptyState.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAItC;;GAEG;AACH,SAAS,SAAS,CAAC,EAAE,SAAS,GAAG,WAAW,EAA0B;IAClE,OAAO,CACH,cAAK,SAAS,EAAC,oHAAoH,YAC/H,cACI,SAAS,EAAE,GAAG,SAAS,qCAAqC,EAC5D,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,4BAA4B,YAElC,eACI,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAC,KAAK,EACjB,CAAC,EAAC,qMAAqM,GACzM,GACA,GACJ,CACT,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,EACvB,KAAK,EACL,OAAO,EACP,IAAI,EACJ,MAAM,EACN,SAAS,GAAG,EAAE,EACd,MAAM,GACF;IACJ,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC;IAE/B,MAAM,YAAY,GAAG,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IAEzD,OAAO,CACH,eACI,SAAS,EAAE,6DAA6D,SAAS,EAAE,iBACtE,MAAM,aAElB,IAAI,IAAI,KAAC,SAAS,KAAG,EAEtB,KAAC,UAAU,IAAC,EAAE,EAAC,IAAI,EAAC,SAAS,EAAC,sDAAsD,YAC/E,KAAK,IAAI,YAAY,GACb,EAEZ,OAAO,IAAI,CACR,KAAC,UAAU,IAAC,EAAE,EAAC,GAAG,EAAC,SAAS,EAAC,yDAAyD,YACjF,OAAO,GACC,CAChB,EAEA,MAAM,IAAI,CACP,iBACI,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,EAC3C,SAAS,EAAC,4MAA4M,YAErN,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CACd,MAAC,UAAU,IAAC,EAAE,EAAC,MAAM,EAAC,SAAS,EAAC,yBAAyB,aACrD,eAAM,SAAS,EAAC,oFAAoF,GAAG,EACtG,MAAM,CAAC,KAAK,IACJ,CAChB,CAAC,CAAC,CAAC,CACA,MAAC,UAAU,IAAC,EAAE,EAAC,MAAM,EAAC,SAAS,EAAC,kCAAkC,aAC7D,MAAM,CAAC,IAAI,IAAI,KAAC,UAAU,IAAC,EAAE,EAAC,MAAM,YAAE,MAAM,CAAC,IAAI,GAAc,EAC/D,MAAM,CAAC,KAAK,IACJ,CAChB,GACI,CACZ,IACC,CACT,CAAC;AACN,CAAC;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface ErrorProps {
|
|
2
|
+
message: string;
|
|
3
|
+
variant?: "inline" | "card" | "banner";
|
|
4
|
+
showIcon?: boolean;
|
|
5
|
+
title?: string;
|
|
6
|
+
helpText?: string;
|
|
7
|
+
onRetry?: () => void;
|
|
8
|
+
onHelp?: () => void;
|
|
9
|
+
showButtons?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function ErrorComponent(props: ErrorProps | string): import("react").JSX.Element;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useLanguage } from "@gostack-framework/react";
|
|
3
|
+
export function ErrorComponent(props) {
|
|
4
|
+
const { t } = useLanguage();
|
|
5
|
+
const config = typeof props === "string"
|
|
6
|
+
? {
|
|
7
|
+
message: props,
|
|
8
|
+
variant: "card",
|
|
9
|
+
showIcon: true,
|
|
10
|
+
showButtons: true,
|
|
11
|
+
}
|
|
12
|
+
: {
|
|
13
|
+
message: props.message,
|
|
14
|
+
variant: props.variant || "card",
|
|
15
|
+
showIcon: props.showIcon !== false,
|
|
16
|
+
title: props.title,
|
|
17
|
+
helpText: props.helpText,
|
|
18
|
+
onRetry: props.onRetry,
|
|
19
|
+
onHelp: props.onHelp,
|
|
20
|
+
showButtons: props.showButtons !== false,
|
|
21
|
+
};
|
|
22
|
+
const { message, variant, showIcon, title, helpText, onRetry, onHelp, showButtons, } = config;
|
|
23
|
+
const ErrorIcon = () => (_jsx("svg", { className: "w-6 h-6 shrink-0", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }) }));
|
|
24
|
+
const InlineVariant = () => (_jsxs("div", { className: "flex justify-center items-center gap-2 text-xs text-dashboard-destructive", children: [showIcon && _jsx(ErrorIcon, {}), _jsx("span", { children: message })] }));
|
|
25
|
+
const BannerVariant = () => (_jsx("div", { className: "bg-dashboard-destructive/10 border-l-4 border-dashboard-destructive p-3.5 rounded-lg", children: _jsxs("div", { className: "flex items-start gap-2.5", children: [showIcon && (_jsx("div", { className: "text-dashboard-destructive mt-0.5", children: _jsx(ErrorIcon, {}) })), _jsxs("div", { className: "flex-1", children: [title && (_jsx("h4", { className: "text-xs font-semibold text-dashboard-destructive mb-1", children: title })), _jsx("p", { className: "text-xs text-dashboard-muted-foreground", children: message })] })] }) }));
|
|
26
|
+
const CardVariant = () => (_jsx("div", { className: "max-w-md w-full mx-4", children: _jsxs("div", { className: "bg-dashboard-card border border-dashboard-border rounded-xl shadow-2xl p-6 transition-all duration-300", children: [_jsxs("div", { className: "flex flex-col items-center text-center mb-5", children: [showIcon && (_jsx("div", { className: "w-12 h-12 rounded-xl bg-dashboard-destructive/15 flex items-center justify-center text-dashboard-destructive mb-3 ring-1 ring-dashboard-destructive/30", children: _jsx("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }) }) })), _jsx("h3", { className: "text-base font-bold text-dashboard-foreground mb-1.5", children: title || t("error.defaultTitle") }), _jsx("p", { className: "text-xs text-dashboard-muted-foreground leading-relaxed", children: message })] }), helpText && (_jsx("div", { className: "mb-5 p-3.5 bg-dashboard-secondary/40 rounded-lg border border-dashboard-border", children: _jsxs("div", { className: "flex items-start gap-2.5", children: [_jsx("svg", { className: "w-4 h-4 text-dashboard-primary shrink-0 mt-0.5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }) }), _jsxs("div", { className: "flex-1", children: [_jsx("h4", { className: "text-xs font-semibold text-dashboard-foreground mb-0.5", children: t("error.howToFix") }), _jsx("p", { className: "text-xs text-dashboard-muted-foreground leading-relaxed", children: helpText })] })] }) })), showButtons && (_jsxs("div", { className: "flex flex-col sm:flex-row gap-2.5", children: [onRetry && (_jsxs("button", { onClick: onRetry, className: "flex-1 px-4 py-2 bg-dashboard-destructive hover:bg-dashboard-destructive/90 text-white font-medium text-xs rounded-lg transition-colors flex items-center justify-center gap-1.5 shadow-xs cursor-pointer", children: [_jsx("svg", { className: "w-3.5 h-3.5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" }) }), t("error.tryAgain")] })), onHelp && (_jsxs("button", { onClick: onHelp, className: "flex-1 px-4 py-2 bg-dashboard-secondary/60 hover:bg-dashboard-secondary text-dashboard-foreground font-medium text-xs rounded-lg border border-dashboard-border transition-colors flex items-center justify-center gap-1.5 cursor-pointer", children: [_jsx("svg", { className: "w-3.5 h-3.5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8.228 9c.549-1.165 2.03-2 3.772-2 2.21 0 4 1.343 4 3 0 1.4-1.278 2.575-3.006 2.907-.542.104-.994.54-.994 1.093m0 3h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }) }), t("error.getHelp")] })), !onRetry && !onHelp && (_jsxs("button", { onClick: () => window.location.reload(), className: "w-full px-4 py-2 bg-dashboard-primary hover:bg-dashboard-primary/90 text-white font-medium text-xs rounded-lg transition-colors flex items-center justify-center gap-1.5 shadow-xs cursor-pointer", children: [_jsx("svg", { className: "w-3.5 h-3.5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" }) }), t("error.reloadPage")] }))] })), _jsx("div", { className: "mt-5 pt-3.5 border-t border-dashboard-border", children: _jsx("p", { className: "text-[11px] text-dashboard-muted-foreground text-center", children: t("error.contactSupport") }) })] }) }));
|
|
27
|
+
const variantRender = () => {
|
|
28
|
+
switch (variant) {
|
|
29
|
+
case "inline":
|
|
30
|
+
return _jsx(InlineVariant, {});
|
|
31
|
+
case "banner":
|
|
32
|
+
return _jsx(BannerVariant, {});
|
|
33
|
+
case "card":
|
|
34
|
+
return _jsx(CardVariant, {});
|
|
35
|
+
default:
|
|
36
|
+
return _jsx(InlineVariant, {});
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
return (_jsx("div", { className: "w-full h-screen flex justify-center items-center bg-transparent", children: variantRender() }));
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=Error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Error.js","sourceRoot":"","sources":["../../src/components/Error.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAavD,MAAM,UAAU,cAAc,CAAC,KAA0B;IACrD,MAAM,EAAE,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC;IAC5B,MAAM,MAAM,GACR,OAAO,KAAK,KAAK,QAAQ;QACrB,CAAC,CAAC;YACI,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,IAAI;SACpB;QACH,CAAC,CAAC;YACI,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,MAAM;YAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ,KAAK,KAAK;YAClC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,WAAW,KAAK,KAAK;SAC3C,CAAC;IAEZ,MAAM,EACF,OAAO,EACP,OAAO,EACP,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,OAAO,EACP,MAAM,EACN,WAAW,GACd,GAAG,MAAM,CAAC;IAEX,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CACpB,cACI,SAAS,EAAC,kBAAkB,EAC5B,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,4BAA4B,YAElC,eACI,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAE,CAAC,EACd,CAAC,EAAC,mDAAmD,GACvD,GACA,CACT,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,CACxB,eAAK,SAAS,EAAC,2EAA2E,aACrF,QAAQ,IAAI,KAAC,SAAS,KAAG,EAC1B,yBAAO,OAAO,GAAQ,IACpB,CACT,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,CACxB,cAAK,SAAS,EAAC,sFAAsF,YACjG,eAAK,SAAS,EAAC,0BAA0B,aACpC,QAAQ,IAAI,CACT,cAAK,SAAS,EAAC,mCAAmC,YAC9C,KAAC,SAAS,KAAG,GACX,CACT,EACD,eAAK,SAAS,EAAC,QAAQ,aAClB,KAAK,IAAI,CACN,aAAI,SAAS,EAAC,uDAAuD,YAChE,KAAK,GACL,CACR,EACD,YAAG,SAAS,EAAC,yCAAyC,YACjD,OAAO,GACR,IACF,IACJ,GACJ,CACT,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,CACtB,cAAK,SAAS,EAAC,sBAAsB,YACjC,eAAK,SAAS,EAAC,wGAAwG,aAEnH,eAAK,SAAS,EAAC,6CAA6C,aACvD,QAAQ,IAAI,CACT,cAAK,SAAS,EAAC,wJAAwJ,YACnK,cACI,SAAS,EAAC,SAAS,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,OAAO,EAAC,WAAW,YAEnB,eACI,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAE,CAAC,EACd,CAAC,EAAC,mDAAmD,GACvD,GACA,GACJ,CACT,EACD,aAAI,SAAS,EAAC,sDAAsD,YAC/D,KAAK,IAAI,CAAC,CAAC,oBAAoB,CAAC,GAChC,EACL,YAAG,SAAS,EAAC,yDAAyD,YACjE,OAAO,GACR,IACF,EAGL,QAAQ,IAAI,CACT,cAAK,SAAS,EAAC,gFAAgF,YAC3F,eAAK,SAAS,EAAC,0BAA0B,aACrC,cACI,SAAS,EAAC,gDAAgD,EAC1D,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,OAAO,EAAC,WAAW,YAEnB,eACI,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAE,CAAC,EACd,CAAC,EAAC,2DAA2D,GAC/D,GACA,EACN,eAAK,SAAS,EAAC,QAAQ,aACnB,aAAI,SAAS,EAAC,wDAAwD,YACjE,CAAC,CAAC,gBAAgB,CAAC,GACnB,EACL,YAAG,SAAS,EAAC,yDAAyD,YACjE,QAAQ,GACT,IACF,IACJ,GACJ,CACT,EAGA,WAAW,IAAI,CACZ,eAAK,SAAS,EAAC,mCAAmC,aAC7C,OAAO,IAAI,CACR,kBACI,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,2MAA2M,aAErN,cACI,SAAS,EAAC,aAAa,EACvB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,OAAO,EAAC,WAAW,YAEnB,eACI,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAE,CAAC,EACd,CAAC,EAAC,6GAA6G,GACjH,GACA,EACL,CAAC,CAAC,gBAAgB,CAAC,IACf,CACZ,EACA,MAAM,IAAI,CACP,kBACI,OAAO,EAAE,MAAM,EACf,SAAS,EAAC,2OAA2O,aAErP,cACI,SAAS,EAAC,aAAa,EACvB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,OAAO,EAAC,WAAW,YAEnB,eACI,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAE,CAAC,EACd,CAAC,EAAC,2JAA2J,GAC/J,GACA,EACL,CAAC,CAAC,eAAe,CAAC,IACd,CACZ,EACA,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,CACpB,kBACI,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EACvC,SAAS,EAAC,mMAAmM,aAE7M,cACI,SAAS,EAAC,aAAa,EACvB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,OAAO,EAAC,WAAW,YAEnB,eACI,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAE,CAAC,EACd,CAAC,EAAC,6GAA6G,GACjH,GACA,EACL,CAAC,CAAC,kBAAkB,CAAC,IACjB,CACZ,IACC,CACT,EAGD,cAAK,SAAS,EAAC,8CAA8C,YACzD,YAAG,SAAS,EAAC,yDAAyD,YACjE,CAAC,CAAC,sBAAsB,CAAC,GAC1B,GACF,IACJ,GACJ,CACT,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE;QACvB,QAAQ,OAAO,EAAE,CAAC;YACd,KAAK,QAAQ;gBACT,OAAO,KAAC,aAAa,KAAG,CAAC;YAC7B,KAAK,QAAQ;gBACT,OAAO,KAAC,aAAa,KAAG,CAAC;YAC7B,KAAK,MAAM;gBACP,OAAO,KAAC,WAAW,KAAG,CAAC;YAC3B;gBACI,OAAO,KAAC,aAAa,KAAG,CAAC;QACjC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,CACH,cAAK,SAAS,EAAC,iEAAiE,YAC3E,aAAa,EAAE,GACd,CACT,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ErrorState — modern error UI for inline, card, and full-page contexts.
|
|
3
|
+
*/
|
|
4
|
+
import type { BaseComponentProps, ErrorStateProps } from "../types";
|
|
5
|
+
interface Props extends ErrorStateProps, BaseComponentProps {
|
|
6
|
+
}
|
|
7
|
+
/** Normalizes unknown errors into a display message. */
|
|
8
|
+
export declare function getErrorMessage(error: unknown, fallback?: string): string;
|
|
9
|
+
export declare function ErrorState({ title, message, error, onRetry, showIcon, variant, primaryColor, accentColor, className, testId, }: Props): import("react").JSX.Element;
|
|
10
|
+
export default ErrorState;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* ErrorState — modern error UI for inline, card, and full-page contexts.
|
|
4
|
+
*/
|
|
5
|
+
import { cn } from "../support/utils.js";
|
|
6
|
+
import { AlertTriangle, Home, RefreshCw, WifiOff } from "lucide-react";
|
|
7
|
+
import { motion } from "motion/react";
|
|
8
|
+
import { useTranslation } from "react-i18next";
|
|
9
|
+
import { useNavigate } from "react-router";
|
|
10
|
+
import { Button } from "./button.js";
|
|
11
|
+
import { ThemedText } from "../index.js";
|
|
12
|
+
/** Normalizes unknown errors into a display message. */
|
|
13
|
+
export function getErrorMessage(error, fallback = "Something went wrong. Please try again.") {
|
|
14
|
+
if (error instanceof Error && error.message)
|
|
15
|
+
return error.message;
|
|
16
|
+
if (typeof error === "string" && error.trim())
|
|
17
|
+
return error;
|
|
18
|
+
if (error &&
|
|
19
|
+
typeof error === "object" &&
|
|
20
|
+
"message" in error &&
|
|
21
|
+
typeof error.message === "string") {
|
|
22
|
+
return error.message;
|
|
23
|
+
}
|
|
24
|
+
return fallback;
|
|
25
|
+
}
|
|
26
|
+
export function ErrorState({ title, message, error, onRetry, showIcon = true, variant = "fullPage", primaryColor, accentColor, className = "", testId, }) {
|
|
27
|
+
const { t } = useTranslation();
|
|
28
|
+
const navigate = useNavigate();
|
|
29
|
+
const resolvedMessage = message ??
|
|
30
|
+
(error !== undefined
|
|
31
|
+
? getErrorMessage(error)
|
|
32
|
+
: t("errors.unexpected", "Something went wrong"));
|
|
33
|
+
const resolvedTitle = title ?? t("errors.unexpected", "Something went wrong");
|
|
34
|
+
if (variant === "inline") {
|
|
35
|
+
return (_jsxs(motion.div, { role: "alert", initial: { opacity: 0, y: 4 }, animate: { opacity: 1, y: 0 }, className: cn("inline-flex items-center gap-2.5 rounded-lg border border-dashboard-destructive/20 bg-dashboard-destructive/10 px-3 py-1.5 text-xs text-dashboard-destructive", className), "data-testid": testId, children: [showIcon && (_jsx(AlertTriangle, { className: "size-3.5 shrink-0 text-dashboard-destructive" })), _jsx(ThemedText, { as: "span", children: resolvedMessage }), onRetry && (_jsx("button", { type: "button", onClick: onRetry, className: "font-semibold text-dashboard-destructive/80 underline-offset-2 hover:underline cursor-pointer", children: t("actions.retry", "Retry") }))] }));
|
|
36
|
+
}
|
|
37
|
+
const Icon = variant === "fullPage" ? WifiOff : AlertTriangle;
|
|
38
|
+
const card = (_jsxs(motion.div, { role: "alert", initial: { opacity: 0, y: 20, scale: 0.98 }, animate: { opacity: 1, y: 0, scale: 1 }, transition: { duration: 0.35, ease: [0.25, 0.1, 0.25, 1] }, className: cn("relative w-full max-w-md overflow-hidden rounded-xl border border-dashboard-border bg-dashboard-card p-6 shadow-2xl md:p-8", className), "data-testid": testId, children: [_jsx("div", { "aria-hidden": true, className: "pointer-events-none absolute -right-16 -top-16 size-48 rounded-full opacity-20 blur-3xl", style: {
|
|
39
|
+
background: accentColor ?? "var(--color-dashboard-primary)",
|
|
40
|
+
} }), _jsx("div", { "aria-hidden": true, className: "pointer-events-none absolute -bottom-20 -left-16 size-56 rounded-full opacity-20 blur-3xl", style: {
|
|
41
|
+
background: primaryColor ?? "var(--color-dashboard-secondary)",
|
|
42
|
+
} }), _jsxs("div", { className: "relative z-10 flex flex-col items-center text-center", children: [showIcon && (_jsx(motion.div, { initial: { scale: 0.8, opacity: 0 }, animate: { scale: 1, opacity: 1 }, transition: { delay: 0.1, duration: 0.35 }, className: "mb-4 flex size-12 items-center justify-center rounded-xl bg-dashboard-destructive/15 ring-1 ring-dashboard-destructive/30", children: _jsx(Icon, { className: "size-6 text-dashboard-destructive", strokeWidth: 2 }) })), _jsx(ThemedText, { variant: "body", as: "p", className: "mb-1.5 font-bold uppercase tracking-wider text-dashboard-destructive", children: t("errors.errorLabel", "Error") }), _jsx(ThemedText, { as: "h2", className: "text-xl font-bold tracking-tight text-dashboard-foreground", children: resolvedTitle }), _jsx(ThemedText, { as: "p", className: "mt-2 max-w-sm text-xs leading-relaxed text-dashboard-muted-foreground", children: resolvedMessage }), _jsxs("div", { className: "mt-6 flex w-full flex-col gap-2.5 sm:flex-row sm:justify-center", children: [onRetry && (_jsxs(Button, { type: "button", onClick: onRetry, className: "h-9 gap-1.5 rounded-lg bg-dashboard-destructive px-4 text-xs font-medium text-white shadow-xs hover:bg-dashboard-destructive/90", children: [_jsx(RefreshCw, { className: "size-3.5" }), t("actions.tryAgain", "Try again")] })), _jsxs(Button, { type: "button", variant: "outline", className: "h-9 gap-1.5 rounded-lg border-dashboard-border bg-dashboard-card/50 px-4 text-xs font-medium hover:bg-dashboard-secondary text-dashboard-foreground", onClick: () => {
|
|
43
|
+
navigate("/");
|
|
44
|
+
}, children: [_jsx(Home, { className: "size-3.5" }), t("actions.goHome", "Go home")] })] })] })] }));
|
|
45
|
+
if (variant === "fullPage") {
|
|
46
|
+
return (_jsxs("div", { className: cn("relative flex h-[90vh] items-center justify-center overflow-hidden px-6 py-16", className), "data-testid": testId, children: [_jsx(motion.div, { className: "pointer-events-none absolute inset-0 opacity-40", style: {
|
|
47
|
+
backgroundImage: `radial-gradient(circle at 20% 20%, ${accentColor ?? "var(--color-dashboard-accent)"}33 0%, transparent 45%), radial-gradient(circle at 80% 80%, ${primaryColor ?? "var(--color-dashboard-secondary)"}44 0%, transparent 50%)`,
|
|
48
|
+
} }), _jsx("div", { className: "relative z-10 w-full flex justify-center", children: card })] }));
|
|
49
|
+
}
|
|
50
|
+
return (_jsx(motion.div, { className: cn("flex w-full justify-center p-4", className), "data-testid": testId, children: card }));
|
|
51
|
+
}
|
|
52
|
+
export default ErrorState;
|
|
53
|
+
//# sourceMappingURL=ErrorState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorState.js","sourceRoot":"","sources":["../../src/components/ErrorState.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface FileAttachmentChipProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
name: string;
|
|
4
|
+
size?: string;
|
|
5
|
+
url?: string;
|
|
6
|
+
onDownload?: () => void;
|
|
7
|
+
onDelete?: () => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function FileAttachmentChip({ name, size, url, onDownload, onDelete, className, ...props }: FileAttachmentChipProps): React.JSX.Element;
|
|
10
|
+
export default FileAttachmentChip;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../support/utils.js";
|
|
3
|
+
import { Download, Paperclip, Trash2 } from "lucide-react";
|
|
4
|
+
export function FileAttachmentChip({ name, size, url, onDownload, onDelete, className, ...props }) {
|
|
5
|
+
const handleDownload = (e) => {
|
|
6
|
+
e.stopPropagation();
|
|
7
|
+
if (onDownload) {
|
|
8
|
+
onDownload();
|
|
9
|
+
}
|
|
10
|
+
else if (url) {
|
|
11
|
+
window.open(url, "_blank");
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
const handleDelete = (e) => {
|
|
15
|
+
e.stopPropagation();
|
|
16
|
+
onDelete?.();
|
|
17
|
+
};
|
|
18
|
+
return (_jsxs("div", { className: cn("group flex items-center justify-between gap-3 px-3 py-2 rounded-lg bg-dashboard-secondary/60 hover:bg-dashboard-secondary border border-dashboard-border transition-colors text-xs select-none", className), ...props, children: [_jsxs("div", { className: "flex items-center gap-2 min-w-0 flex-1", children: [_jsx(Paperclip, { className: "w-3.5 h-3.5 text-dashboard-muted-foreground shrink-0" }), _jsx("span", { className: "truncate font-medium text-dashboard-foreground", children: name })] }), _jsxs("div", { className: "flex items-center gap-2 shrink-0", children: [size && (_jsx("span", { className: "text-[11px] text-dashboard-muted-foreground tabular-nums", children: size })), (onDownload || url) && (_jsx("button", { type: "button", onClick: handleDownload, "aria-label": `Download ${name}`, className: "p-1 text-dashboard-muted-foreground hover:text-dashboard-foreground hover:bg-dashboard-muted/30 rounded transition-colors", children: _jsx(Download, { className: "w-3.5 h-3.5" }) })), onDelete && (_jsx("button", { type: "button", onClick: handleDelete, "aria-label": `Delete ${name}`, className: "p-1 text-dashboard-muted-foreground hover:text-red-400 hover:bg-red-500/10 rounded transition-colors", children: _jsx(Trash2, { className: "w-3.5 h-3.5" }) }))] })] }));
|
|
19
|
+
}
|
|
20
|
+
export default FileAttachmentChip;
|
|
21
|
+
//# sourceMappingURL=FileAttachmentChip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileAttachmentChip.js","sourceRoot":"","sources":["../../src/components/FileAttachmentChip.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAW3D,MAAM,UAAU,kBAAkB,CAAC,EAC/B,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,UAAU,EACV,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACc;IACtB,MAAM,cAAc,GAAG,CAAC,CAAmB,EAAE,EAAE;QAC3C,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,CAAC;QACjB,CAAC;aAAM,IAAI,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,CAAmB,EAAE,EAAE;QACzC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,QAAQ,EAAE,EAAE,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO,CACH,eACI,SAAS,EAAE,EAAE,CACT,gMAAgM,EAChM,SAAS,CACZ,KACG,KAAK,aAET,eAAK,SAAS,EAAC,wCAAwC,aACnD,KAAC,SAAS,IAAC,SAAS,EAAC,sDAAsD,GAAG,EAC9E,eAAM,SAAS,EAAC,gDAAgD,YAC3D,IAAI,GACF,IACL,EAEN,eAAK,SAAS,EAAC,kCAAkC,aAC5C,IAAI,IAAI,CACL,eAAM,SAAS,EAAC,0DAA0D,YACrE,IAAI,GACF,CACV,EAEA,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,CACpB,iBACI,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,cAAc,gBACX,YAAY,IAAI,EAAE,EAC9B,SAAS,EAAC,2HAA2H,YAErI,KAAC,QAAQ,IAAC,SAAS,EAAC,aAAa,GAAG,GAC/B,CACZ,EAEA,QAAQ,IAAI,CACT,iBACI,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,YAAY,gBACT,UAAU,IAAI,EAAE,EAC5B,SAAS,EAAC,sGAAsG,YAEhH,KAAC,MAAM,IAAC,SAAS,EAAC,aAAa,GAAG,GAC7B,CACZ,IACC,IACJ,CACT,CAAC;AACN,CAAC;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface FilterConditionChipProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
field: string;
|
|
4
|
+
operator?: string;
|
|
5
|
+
value: string;
|
|
6
|
+
onRemove?: () => void;
|
|
7
|
+
onClick?: () => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function FilterConditionChip({ field, operator, value, onRemove, onClick, className, ...props }: FilterConditionChipProps): React.JSX.Element;
|
|
10
|
+
export default FilterConditionChip;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../support/utils.js";
|
|
3
|
+
import { X } from "lucide-react";
|
|
4
|
+
export function FilterConditionChip({ field, operator = "=", value, onRemove, onClick, className, ...props }) {
|
|
5
|
+
return (_jsxs("div", { className: cn("inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md bg-dashboard-secondary/80 hover:bg-dashboard-secondary border border-dashboard-border text-xs text-dashboard-foreground font-medium transition-colors select-none", onClick && "cursor-pointer", className), onClick: onClick, ...props, children: [_jsx("span", { className: "text-dashboard-muted-foreground", children: field }), _jsx("span", { className: "text-dashboard-primary font-mono text-[11px]", children: operator }), _jsx("span", { className: "text-dashboard-foreground font-semibold", children: value }), onRemove && (_jsx("button", { type: "button", "aria-label": `Remove filter for ${field}`, onClick: (e) => {
|
|
6
|
+
e.stopPropagation();
|
|
7
|
+
onRemove();
|
|
8
|
+
}, className: "ml-1 p-0.5 rounded-xs text-dashboard-muted-foreground hover:text-dashboard-foreground hover:bg-dashboard-muted/40 transition-colors", children: _jsx(X, { className: "w-3 h-3" }) }))] }));
|
|
9
|
+
}
|
|
10
|
+
export default FilterConditionChip;
|
|
11
|
+
//# sourceMappingURL=FilterConditionChip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterConditionChip.js","sourceRoot":"","sources":["../../src/components/FilterConditionChip.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAWjC,MAAM,UAAU,mBAAmB,CAAC,EAChC,KAAK,EACL,QAAQ,GAAG,GAAG,EACd,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACe;IACvB,OAAO,CACH,eACI,SAAS,EAAE,EAAE,CACT,2NAA2N,EAC3N,OAAO,IAAI,gBAAgB,EAC3B,SAAS,CACZ,EACD,OAAO,EAAE,OAAO,KACZ,KAAK,aAET,eAAM,SAAS,EAAC,iCAAiC,YAAE,KAAK,GAAQ,EAChE,eAAM,SAAS,EAAC,8CAA8C,YACzD,QAAQ,GACN,EACP,eAAM,SAAS,EAAC,yCAAyC,YACpD,KAAK,GACH,EACN,QAAQ,IAAI,CACT,iBACI,IAAI,EAAC,QAAQ,gBACD,qBAAqB,KAAK,EAAE,EACxC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oBACX,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,QAAQ,EAAE,CAAC;gBACf,CAAC,EACD,SAAS,EAAC,qIAAqI,YAE/I,KAAC,CAAC,IAAC,SAAS,EAAC,SAAS,GAAG,GACpB,CACZ,IACC,CACT,CAAC;AACN,CAAC;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
interface MediaItem {
|
|
2
|
+
url: string;
|
|
3
|
+
type?: "image" | "video";
|
|
4
|
+
title?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function GalleryCarouselDialog({ images, media, initialIndex, open, onClose, galleryId, }: {
|
|
7
|
+
images?: string[];
|
|
8
|
+
media?: MediaItem[];
|
|
9
|
+
initialIndex: number;
|
|
10
|
+
open: boolean;
|
|
11
|
+
onClose: () => void;
|
|
12
|
+
galleryId?: number;
|
|
13
|
+
}): import("react").JSX.Element | null;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Dialog, DialogOverlay, DialogPortal, } from "./dialog.js";
|
|
3
|
+
import { ChevronLeft, ChevronRight, Download, Grid3x3, ImageIcon, Play, Share2, X, ZoomIn, } from "lucide-react";
|
|
4
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
5
|
+
import { toast } from "sonner";
|
|
6
|
+
function isVideo(url, type) {
|
|
7
|
+
if (type === "video")
|
|
8
|
+
return true;
|
|
9
|
+
const videoExtensions = [".mp4", ".webm", ".ogg", ".mov", ".mkv"];
|
|
10
|
+
const lowerUrl = url.toLowerCase();
|
|
11
|
+
return videoExtensions.some((ext) => lowerUrl.includes(ext));
|
|
12
|
+
}
|
|
13
|
+
export function GalleryCarouselDialog({ images, media, initialIndex, open, onClose, galleryId, }) {
|
|
14
|
+
// Normalize media array (support both images and media props)
|
|
15
|
+
const mediaItems = media || images?.map((url) => ({ url, type: "image" })) || [];
|
|
16
|
+
const [current, setCurrent] = useState(initialIndex);
|
|
17
|
+
const [animDir, setAnimDir] = useState(null);
|
|
18
|
+
const [isAnimating, setIsAnimating] = useState(false);
|
|
19
|
+
const [showThumbs, setShowThumbs] = useState(true);
|
|
20
|
+
const [zoom, setZoom] = useState(false);
|
|
21
|
+
const [isPlaying, setIsPlaying] = useState(false);
|
|
22
|
+
const thumbsRef = useRef(null);
|
|
23
|
+
const videoRef = useRef(null);
|
|
24
|
+
const total = mediaItems.length;
|
|
25
|
+
const currentItem = mediaItems[current];
|
|
26
|
+
const currentIsVideo = currentItem
|
|
27
|
+
? isVideo(currentItem.url, currentItem.type)
|
|
28
|
+
: false;
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
if (open) {
|
|
31
|
+
setCurrent(initialIndex);
|
|
32
|
+
setZoom(false);
|
|
33
|
+
}
|
|
34
|
+
}, [open, initialIndex]);
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
if (!thumbsRef.current)
|
|
37
|
+
return;
|
|
38
|
+
const active = thumbsRef.current.querySelector(`[data-active="true"]`);
|
|
39
|
+
active?.scrollIntoView({
|
|
40
|
+
behavior: "smooth",
|
|
41
|
+
block: "nearest",
|
|
42
|
+
inline: "center",
|
|
43
|
+
});
|
|
44
|
+
}, [current]);
|
|
45
|
+
const navigate = useCallback((dir) => {
|
|
46
|
+
if (isAnimating || zoom)
|
|
47
|
+
return;
|
|
48
|
+
setAnimDir(dir === "next" ? "left" : "right");
|
|
49
|
+
setIsAnimating(true);
|
|
50
|
+
setTimeout(() => {
|
|
51
|
+
setCurrent((c) => dir === "next" ? (c + 1) % total : (c - 1 + total) % total);
|
|
52
|
+
setAnimDir(null);
|
|
53
|
+
setTimeout(() => setIsAnimating(false), 50);
|
|
54
|
+
}, 220);
|
|
55
|
+
}, [isAnimating, zoom, total]);
|
|
56
|
+
useEffect(() => {
|
|
57
|
+
if (!open)
|
|
58
|
+
return;
|
|
59
|
+
const handler = (e) => {
|
|
60
|
+
if (e.key === "ArrowRight")
|
|
61
|
+
navigate("next");
|
|
62
|
+
if (e.key === "ArrowLeft")
|
|
63
|
+
navigate("prev");
|
|
64
|
+
if (e.key === "Escape")
|
|
65
|
+
onClose();
|
|
66
|
+
};
|
|
67
|
+
window.addEventListener("keydown", handler);
|
|
68
|
+
return () => window.removeEventListener("keydown", handler);
|
|
69
|
+
}, [open, navigate, onClose]);
|
|
70
|
+
const touchStart = useRef(null);
|
|
71
|
+
const handleTouchStart = (e) => {
|
|
72
|
+
touchStart.current = e.touches[0].clientX;
|
|
73
|
+
};
|
|
74
|
+
const handleTouchEnd = (e) => {
|
|
75
|
+
if (touchStart.current === null)
|
|
76
|
+
return;
|
|
77
|
+
const diff = touchStart.current - e.changedTouches[0].clientX;
|
|
78
|
+
if (Math.abs(diff) > 50)
|
|
79
|
+
navigate(diff > 0 ? "next" : "prev");
|
|
80
|
+
touchStart.current = null;
|
|
81
|
+
};
|
|
82
|
+
const handleDownload = async (e) => {
|
|
83
|
+
e.preventDefault();
|
|
84
|
+
e.stopPropagation();
|
|
85
|
+
if (!currentItem?.url)
|
|
86
|
+
return;
|
|
87
|
+
let downloadUrl = currentItem.url;
|
|
88
|
+
try {
|
|
89
|
+
const urlObj = new URL(downloadUrl);
|
|
90
|
+
// If it's a backend storage URL, make it relative so it goes through our Vite proxy (or same-origin in prod) to bypass CORS
|
|
91
|
+
if (urlObj.pathname.startsWith("/storage/")) {
|
|
92
|
+
downloadUrl = urlObj.pathname + urlObj.search;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
catch (err) {
|
|
96
|
+
// Ignore invalid URLs
|
|
97
|
+
}
|
|
98
|
+
const toastId = toast.loading("Downloading media...");
|
|
99
|
+
try {
|
|
100
|
+
const response = await fetch(downloadUrl);
|
|
101
|
+
if (!response.ok)
|
|
102
|
+
throw new Error("Failed to fetch");
|
|
103
|
+
const blob = await response.blob();
|
|
104
|
+
const url = window.URL.createObjectURL(blob);
|
|
105
|
+
const a = document.createElement("a");
|
|
106
|
+
a.style.display = "none";
|
|
107
|
+
a.href = url;
|
|
108
|
+
a.download = currentItem.url.split("/").pop() || "download";
|
|
109
|
+
document.body.appendChild(a);
|
|
110
|
+
a.click();
|
|
111
|
+
window.URL.revokeObjectURL(url);
|
|
112
|
+
document.body.removeChild(a);
|
|
113
|
+
toast.success("Download complete", { id: toastId });
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
console.error("Failed to download media", error);
|
|
117
|
+
toast.error("Download failed. The file might have CORS restrictions.", { id: toastId });
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
if (!open)
|
|
121
|
+
return null;
|
|
122
|
+
return (_jsx(Dialog, { open: open, onOpenChange: (v) => !v && onClose(), children: _jsxs(DialogPortal, { children: [_jsx(DialogOverlay, { className: "fixed inset-0 z-50 bg-black/95 backdrop-blur-sm data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0" }), _jsxs("div", { className: "fixed inset-0 z-50 flex flex-col data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0", children: [_jsxs("div", { className: "flex items-center justify-between px-6 py-4 shrink-0", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "w-8 h-8 rounded-lg bg-dashboard-secondary/60 flex items-center justify-center border border-dashboard-border", children: _jsx(ImageIcon, { size: 15, className: "text-dashboard-muted-foreground" }) }), _jsxs("div", { children: [_jsxs("p", { className: "text-dashboard-foreground font-display font-semibold text-xs leading-none mb-1", children: ["Gallery #", galleryId] }), _jsxs("p", { className: "text-dashboard-muted-foreground text-[11px] font-medium tabular-nums", children: [current + 1, " ", _jsx("span", { className: "text-dashboard-muted-foreground/40", children: "/" }), " ", total] })] })] }), _jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("button", { onClick: () => setZoom((v) => !v), "aria-label": "Toggle zoom", className: `w-8 h-8 rounded-lg flex items-center justify-center border transition-colors cursor-pointer ${zoom ? "bg-dashboard-primary/20 border-dashboard-primary/50 text-dashboard-primary" : "bg-dashboard-card border-dashboard-border text-dashboard-muted-foreground hover:bg-dashboard-secondary hover:text-dashboard-foreground"}`, title: "Toggle zoom", children: _jsx(ZoomIn, { size: 14 }) }), _jsx("button", { onClick: () => setShowThumbs((v) => !v), "aria-label": "Toggle thumbnails", className: `w-8 h-8 rounded-lg flex items-center justify-center border transition-colors cursor-pointer ${showThumbs ? "bg-dashboard-secondary border-dashboard-border text-dashboard-foreground" : "bg-dashboard-card border-dashboard-border text-dashboard-muted-foreground hover:bg-dashboard-secondary hover:text-dashboard-foreground"}`, title: "Toggle thumbnails", children: _jsx(Grid3x3, { size: 14 }) }), _jsx("button", { onClick: handleDownload, "aria-label": "Download media", className: "w-8 h-8 rounded-lg bg-dashboard-card border border-dashboard-border flex items-center justify-center text-dashboard-muted-foreground hover:bg-dashboard-secondary hover:text-dashboard-foreground transition-colors cursor-pointer", title: "Download", children: _jsx(Download, { size: 14 }) }), _jsx("button", { onClick: () => navigator.clipboard?.writeText(currentItem?.url || ""), "aria-label": "Copy URL", className: "w-8 h-8 rounded-lg bg-dashboard-card border border-dashboard-border flex items-center justify-center text-dashboard-muted-foreground hover:bg-dashboard-secondary hover:text-dashboard-foreground transition-colors cursor-pointer", title: "Copy URL", children: _jsx(Share2, { size: 14 }) }), _jsx("div", { className: "w-px h-5 bg-dashboard-border/80 mx-1" }), _jsx("button", { onClick: onClose, "aria-label": "Close dialog", className: "w-8 h-8 rounded-lg bg-dashboard-card border border-dashboard-border flex items-center justify-center text-dashboard-muted-foreground hover:bg-dashboard-destructive/15 hover:border-dashboard-destructive/30 hover:text-dashboard-destructive transition-colors cursor-pointer", children: _jsx(X, { size: 14 }) })] })] }), _jsxs("div", { className: "flex-1 relative flex items-center justify-center px-4 min-h-0 overflow-hidden", onTouchStart: handleTouchStart, onTouchEnd: handleTouchEnd, children: [_jsx("div", { className: "absolute inset-0 pointer-events-none opacity-20 transition-all duration-1000", style: {
|
|
123
|
+
background: `radial-gradient(ellipse 60% 60% at 50% 50%, var(--color-dashboard-primary), transparent)`,
|
|
124
|
+
} }), _jsx("button", { type: "button", "aria-label": "Previous media", onClick: (e) => {
|
|
125
|
+
e.stopPropagation();
|
|
126
|
+
navigate("prev");
|
|
127
|
+
}, disabled: isAnimating || zoom, className: "absolute left-4 z-10 w-11 h-11 rounded-full bg-dashboard-card/90 border border-dashboard-border backdrop-blur-xs flex items-center justify-center text-dashboard-foreground hover:bg-dashboard-secondary transition-all disabled:opacity-30 group", children: _jsx(ChevronLeft, { size: 20, className: "group-hover:-translate-x-0.5 transition-transform rtl:rotate-180" }) }), _jsxs("div", { className: `relative w-[calc(100%-10rem)] md:w-[calc(100%-20rem)] mx-auto rounded-2xl overflow-hidden transition-all duration-500 select-none ${zoom && !currentIsVideo ? "cursor-zoom-out" : currentIsVideo ? "" : "cursor-zoom-in"}`, style: {
|
|
128
|
+
opacity: isAnimating ? 0 : 1,
|
|
129
|
+
transform: isAnimating
|
|
130
|
+
? `translateX(${animDir === "left" ? "-40px" : "40px"}) scale(0.97)`
|
|
131
|
+
: "translateX(0) scale(1)",
|
|
132
|
+
transition: "opacity 0.22s ease, transform 0.22s ease",
|
|
133
|
+
}, onClick: (e) => {
|
|
134
|
+
e.stopPropagation();
|
|
135
|
+
if (!isAnimating && !currentIsVideo)
|
|
136
|
+
setZoom((v) => !v);
|
|
137
|
+
}, children: [currentIsVideo ? (_jsx("video", { ref: videoRef, src: currentItem?.url, className: "block w-full max-h-[60vh] object-contain rounded-2xl", controls: true, autoPlay: isPlaying, onPlay: () => setIsPlaying(true), onPause: () => setIsPlaying(false) })) : (_jsx("img", { src: currentItem?.url, alt: currentItem?.title ||
|
|
138
|
+
`Image ${current + 1}`, className: `block w-full max-h-[60vh] object-contain rounded-2xl transition-all duration-500 ${zoom ? "scale-[2.5]" : "scale-100"}`, draggable: false })), _jsx("div", { className: "absolute inset-0 rounded-2xl ring-1 ring-dashboard-border/40 pointer-events-none" })] }), _jsx("button", { type: "button", "aria-label": "Next media", onClick: (e) => {
|
|
139
|
+
e.stopPropagation();
|
|
140
|
+
navigate("next");
|
|
141
|
+
}, disabled: isAnimating || zoom, className: "absolute right-4 z-10 w-11 h-11 rounded-full bg-dashboard-card/90 border border-dashboard-border backdrop-blur-xs flex items-center justify-center text-dashboard-foreground hover:bg-dashboard-secondary transition-all disabled:opacity-30 group", children: _jsx(ChevronRight, { size: 20, className: "group-hover:translate-x-0.5 transition-transform rtl:rotate-180" }) }), _jsx("div", { className: "absolute bottom-0 left-1/2 -translate-x-1/2 w-32 h-1 bg-dashboard-secondary rounded-full overflow-hidden border border-dashboard-border", children: _jsx("div", { className: "h-full bg-dashboard-primary rounded-full transition-all duration-300", style: {
|
|
142
|
+
width: `${((current + 1) / total) * 100}%`,
|
|
143
|
+
} }) })] }), _jsx("div", { className: `shrink-0 transition-all duration-500 overflow-hidden ${showThumbs ? "max-h-32 opacity-100" : "max-h-0 opacity-0"}`, children: _jsxs("div", { className: "px-6 pt-4 pb-5", children: [_jsxs("div", { className: "relative", children: [_jsx("div", { className: "absolute left-0 top-0 bottom-0 w-8 bg-linear-to-r from-dashboard-background to-transparent z-10 pointer-events-none" }), _jsx("div", { className: "absolute right-0 top-0 bottom-0 w-8 bg-linear-to-l from-dashboard-background to-transparent z-10 pointer-events-none" }), _jsx("div", { ref: thumbsRef, className: "flex gap-2 overflow-x-auto pb-1 scroll-smooth", style: { scrollbarWidth: "none" }, children: mediaItems.map((item, i) => {
|
|
144
|
+
const itemIsVideo = isVideo(item.url, item.type);
|
|
145
|
+
return (_jsxs("button", { type: "button", "aria-label": `View media ${i + 1}`, "data-active": i === current, onClick: (e) => {
|
|
146
|
+
e.stopPropagation();
|
|
147
|
+
if (isAnimating)
|
|
148
|
+
return;
|
|
149
|
+
setAnimDir(i > current
|
|
150
|
+
? "left"
|
|
151
|
+
: "right");
|
|
152
|
+
setIsAnimating(true);
|
|
153
|
+
setTimeout(() => {
|
|
154
|
+
setCurrent(i);
|
|
155
|
+
setAnimDir(null);
|
|
156
|
+
setTimeout(() => setIsAnimating(false), 50);
|
|
157
|
+
}, 220);
|
|
158
|
+
}, className: `relative shrink-0 w-16 h-16 rounded-xl overflow-hidden transition-all duration-300 border-2 ${i === current
|
|
159
|
+
? "border-dashboard-primary scale-105 shadow-xs"
|
|
160
|
+
: "border-dashboard-border opacity-60 hover:opacity-100 hover:border-dashboard-primary/60 hover:scale-102"}`, children: [_jsx("img", { src: item.url, alt: "", className: "w-full h-full object-cover", draggable: false }), itemIsVideo && (_jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-black/40", children: _jsx(Play, { size: 16, className: "text-white fill-white" }) })), i === current && (_jsx("div", { className: "absolute inset-0 ring-2 ring-dashboard-primary/50 ring-inset rounded-[10px]" }))] }, i));
|
|
161
|
+
}) })] }), _jsx("div", { className: "flex justify-center gap-1 mt-3", children: Array.from({ length: Math.min(total, 9) }).map((_, i) => {
|
|
162
|
+
const idx = Math.floor((current / total) *
|
|
163
|
+
Math.min(total, 9));
|
|
164
|
+
return (_jsx("div", { className: `rounded-full transition-all duration-300 ${i === idx ? "w-4 h-1.5 bg-dashboard-primary" : "w-1.5 h-1.5 bg-dashboard-secondary border border-dashboard-border"}` }, i));
|
|
165
|
+
}) })] }) })] })] }) }));
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=GalleryCarouselDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GalleryCarouselDialog.js","sourceRoot":"","sources":["../../src/components/GalleryCarouselDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { FieldValidationProps } from "./form-error";
|
|
2
|
+
export interface HierarchicalItem {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
parentId: string | null;
|
|
6
|
+
children?: HierarchicalItem[] | null;
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
}
|
|
9
|
+
export interface HierarchicalSelectionMenuProps extends FieldValidationProps {
|
|
10
|
+
items: HierarchicalItem[];
|
|
11
|
+
value: string | null;
|
|
12
|
+
onChange: (id: string | null, item?: HierarchicalItem | null) => void;
|
|
13
|
+
placeholder?: string;
|
|
14
|
+
searchPlaceholder?: string;
|
|
15
|
+
emptyMessage?: string;
|
|
16
|
+
id?: string;
|
|
17
|
+
className?: string;
|
|
18
|
+
selectedLabel?: string;
|
|
19
|
+
selectedItem?: HierarchicalItem | any;
|
|
20
|
+
}
|
|
21
|
+
export declare function HierarchicalSelectionMenu({ items, value, onChange, placeholder, searchPlaceholder, emptyMessage, id, className, selectedLabel, selectedItem, error, errors, payloadKey, errorKey, containerClassName, errorClassName, }: HierarchicalSelectionMenuProps): import("react").JSX.Element;
|