dishui 0.0.65 → 0.0.67
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/dist/_virtual/_rolldown/runtime.js +10 -11
- package/dist/chart.js +12 -46
- package/dist/code-editor.js +16 -43
- package/dist/components/Accordion/index.d.ts +39 -0
- package/dist/components/Accordion/index.js +70 -0
- package/dist/components/Accordion/index.js.map +1 -0
- package/dist/components/Avatar/index.d.ts +48 -0
- package/dist/components/Avatar/index.js +71 -0
- package/dist/components/Avatar/index.js.map +1 -0
- package/dist/components/Badge/index.js +10 -15
- package/dist/components/Badge/index.js.map +1 -1
- package/dist/components/Button/index.js +62 -89
- package/dist/components/Button/index.js.map +1 -1
- package/dist/components/Card/index.d.ts +142 -0
- package/dist/components/Card/index.js +368 -69
- package/dist/components/Card/index.js.map +1 -1
- package/dist/components/Chart/Chart.js +25 -25
- package/dist/components/Chart/Chart.js.map +1 -1
- package/dist/components/Checkbox/index.js +57 -65
- package/dist/components/Checkbox/index.js.map +1 -1
- package/dist/components/ChoicePicker/index.d.ts +44 -0
- package/dist/components/ChoicePicker/index.js +81 -0
- package/dist/components/ChoicePicker/index.js.map +1 -0
- package/dist/components/Column/index.d.ts +28 -0
- package/dist/components/Column/index.js +30 -0
- package/dist/components/Column/index.js.map +1 -0
- package/dist/components/DateTimeInput/index.d.ts +44 -0
- package/dist/components/DateTimeInput/index.js +48 -0
- package/dist/components/DateTimeInput/index.js.map +1 -0
- package/dist/components/Demo/index.js +107 -107
- package/dist/components/Demo/index.js.map +1 -1
- package/dist/components/Divider/index.d.ts +20 -0
- package/dist/components/Divider/index.js +30 -0
- package/dist/components/Divider/index.js.map +1 -0
- package/dist/components/EmptyState/index.js +24 -24
- package/dist/components/EmptyState/index.js.map +1 -1
- package/dist/components/FileUploader/DropZone.js +134 -136
- package/dist/components/FileUploader/DropZone.js.map +1 -1
- package/dist/components/FileUploader/FileItem.js +159 -163
- package/dist/components/FileUploader/FileItem.js.map +1 -1
- package/dist/components/FileUploader/FileUploader.js +126 -127
- package/dist/components/FileUploader/FileUploader.js.map +1 -1
- package/dist/components/FileUploader/UploadQueue.js +62 -62
- package/dist/components/FileUploader/UploadQueue.js.map +1 -1
- package/dist/components/FloatWindow/index.d.ts +28 -0
- package/dist/components/GridLayout/index.d.ts +42 -0
- package/dist/components/Icon/index.d.ts +26 -0
- package/dist/components/Icon/index.js +27 -0
- package/dist/components/Icon/index.js.map +1 -0
- package/dist/components/Image/index.d.ts +33 -0
- package/dist/components/Image/index.js +44 -0
- package/dist/components/Image/index.js.map +1 -0
- package/dist/components/Input/index.js +196 -197
- package/dist/components/Input/index.js.map +1 -1
- package/dist/components/Label/index.js +62 -74
- package/dist/components/Label/index.js.map +1 -1
- package/dist/components/Layout/index.js +134 -139
- package/dist/components/Layout/index.js.map +1 -1
- package/dist/components/List/index.js +45 -58
- package/dist/components/List/index.js.map +1 -1
- package/dist/components/Markdown/Markdown.js +106 -107
- package/dist/components/Markdown/Markdown.js.map +1 -1
- package/dist/components/Markdown/codeThemes.js +24 -33
- package/dist/components/Markdown/codeThemes.js.map +1 -1
- package/dist/components/Markdown/markdownComponents.js +203 -208
- package/dist/components/Markdown/markdownComponents.js.map +1 -1
- package/dist/components/Markdown/parseCodeBlockMeta.js +22 -22
- package/dist/components/Markdown/parseCodeBlockMeta.js.map +1 -1
- package/dist/components/Markdown/useMarkdownSource.js +46 -46
- package/dist/components/Markdown/useMarkdownSource.js.map +1 -1
- package/dist/components/Markdown/useMarkmapRenderer.js +35 -36
- package/dist/components/Markdown/useMarkmapRenderer.js.map +1 -1
- package/dist/components/Markdown/useMermaidRenderer.js +41 -42
- package/dist/components/Markdown/useMermaidRenderer.js.map +1 -1
- package/dist/components/Modal/index.js +82 -82
- package/dist/components/Modal/index.js.map +1 -1
- package/dist/components/MultipleChoice/index.d.ts +44 -0
- package/dist/components/MultipleChoice/index.js +52 -0
- package/dist/components/MultipleChoice/index.js.map +1 -0
- package/dist/components/Notification/index.d.ts +17 -0
- package/dist/components/Page/index.d.ts +1 -1
- package/dist/components/Page/index.js +40 -71
- package/dist/components/Page/index.js.map +1 -1
- package/dist/components/PageHeader/index.js +28 -28
- package/dist/components/PageHeader/index.js.map +1 -1
- package/dist/components/ProtectedRoute/index.js +8 -9
- package/dist/components/ProtectedRoute/index.js.map +1 -1
- package/dist/components/Row/index.d.ts +28 -0
- package/dist/components/Row/index.js +30 -0
- package/dist/components/Row/index.js.map +1 -0
- package/dist/components/Select/index.js +251 -254
- package/dist/components/Select/index.js.map +1 -1
- package/dist/components/SidebarToggleButton/index.js +56 -59
- package/dist/components/SidebarToggleButton/index.js.map +1 -1
- package/dist/components/Slider/index.d.ts +39 -0
- package/dist/components/Slider/index.js +52 -0
- package/dist/components/Slider/index.js.map +1 -0
- package/dist/components/Switch/index.d.ts +34 -0
- package/dist/components/Switch/index.js +55 -0
- package/dist/components/Switch/index.js.map +1 -0
- package/dist/components/Tab/index.d.ts +40 -0
- package/dist/components/Table/index.js +109 -121
- package/dist/components/Table/index.js.map +1 -1
- package/dist/components/Tabs/index.js +28 -38
- package/dist/components/Tabs/index.js.map +1 -1
- package/dist/components/Text/index.d.ts +43 -0
- package/dist/components/Text/index.js +55 -0
- package/dist/components/Text/index.js.map +1 -0
- package/dist/components/Tooltip/index.d.ts +23 -0
- package/dist/components/Tooltip/index.js +34 -0
- package/dist/components/Tooltip/index.js.map +1 -0
- package/dist/components/Tree/Tree.js +205 -205
- package/dist/components/Tree/Tree.js.map +1 -1
- package/dist/components/pro/ArticleContextMenu/index.js +86 -87
- package/dist/components/pro/ArticleContextMenu/index.js.map +1 -1
- package/dist/components/pro/ArticleControl/ArticleControl2.js +250 -250
- package/dist/components/pro/ArticleControl/ArticleControl2.js.map +1 -1
- package/dist/components/pro/ArticleControl/buildHeadingTree.js +31 -32
- package/dist/components/pro/ArticleControl/buildHeadingTree.js.map +1 -1
- package/dist/components/pro/ArticleControl/useArticleToc.js +100 -102
- package/dist/components/pro/ArticleControl/useArticleToc.js.map +1 -1
- package/dist/components/pro/Calendar/Calendar.d.ts +10 -0
- package/dist/components/pro/Calendar/hooks/useCalendarDrag.d.ts +47 -0
- package/dist/components/pro/Calendar/hooks/useCalendarState.d.ts +56 -0
- package/dist/components/pro/Calendar/index.d.ts +7 -0
- package/dist/components/pro/Calendar/types.d.ts +151 -0
- package/dist/components/pro/Calendar/utils.d.ts +94 -0
- package/dist/components/pro/Chat/Chat.d.ts +6 -0
- package/dist/components/pro/Chat/index.d.ts +2 -0
- package/dist/components/pro/Chat/types.d.ts +84 -0
- package/dist/components/pro/CodeEditor/editors/CodeEditor.js +287 -327
- package/dist/components/pro/CodeEditor/editors/CodeEditor.js.map +1 -1
- package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js +167 -224
- package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js.map +1 -1
- package/dist/components/pro/CodeEditor/editors/markdownExtensions.js +594 -613
- package/dist/components/pro/CodeEditor/editors/markdownExtensions.js.map +1 -1
- package/dist/components/pro/CodeEditor/extensions/contextMenu.js +54 -55
- package/dist/components/pro/CodeEditor/extensions/contextMenu.js.map +1 -1
- package/dist/components/pro/CodeEditor/extensions/index.js +152 -160
- package/dist/components/pro/CodeEditor/extensions/index.js.map +1 -1
- package/dist/components/pro/CodeEditor/langs/index.js +7 -15
- package/dist/components/pro/CodeEditor/langs/index.js.map +1 -1
- package/dist/components/pro/CodeEditor/langs/javascript.js +11 -48
- package/dist/components/pro/CodeEditor/langs/javascript.js.map +1 -1
- package/dist/components/pro/CodeEditor/langs/python.js +4 -40
- package/dist/components/pro/CodeEditor/langs/python.js.map +1 -1
- package/dist/components/pro/CodeEditor/langs/snippets.js +118 -147
- package/dist/components/pro/CodeEditor/langs/snippets.js.map +1 -1
- package/dist/components/pro/CodeEditor/panels/FootnotePanel.js +153 -153
- package/dist/components/pro/CodeEditor/panels/FootnotePanel.js.map +1 -1
- package/dist/components/pro/CodeEditor/panels/HistoryPanel.js +180 -190
- package/dist/components/pro/CodeEditor/panels/HistoryPanel.js.map +1 -1
- package/dist/components/pro/CodeEditor/panels/OutlinePanel.js +130 -137
- package/dist/components/pro/CodeEditor/panels/OutlinePanel.js.map +1 -1
- package/dist/components/pro/CodeEditor/panels/TableOfContentsPanel.js +228 -242
- package/dist/components/pro/CodeEditor/panels/TableOfContentsPanel.js.map +1 -1
- package/dist/components/pro/CodeEditor/panels/VariablePanel.js +208 -248
- package/dist/components/pro/CodeEditor/panels/VariablePanel.js.map +1 -1
- package/dist/components/pro/CodeEditor/themes.js +513 -483
- package/dist/components/pro/CodeEditor/themes.js.map +1 -1
- package/dist/components/pro/CodeEditor/types.d.ts +1 -1
- package/dist/components/pro/CodeEditor/utils.js +171 -175
- package/dist/components/pro/CodeEditor/utils.js.map +1 -1
- package/dist/components/pro/DataTable/DataTable.js +305 -306
- package/dist/components/pro/DataTable/DataTable.js.map +1 -1
- package/dist/components/pro/DataTable/Filters.js +299 -314
- package/dist/components/pro/DataTable/Filters.js.map +1 -1
- package/dist/components/pro/DataTable/PivotPanel.js +203 -204
- package/dist/components/pro/DataTable/PivotPanel.js.map +1 -1
- package/dist/components/pro/DataTable/PivotView.js +142 -144
- package/dist/components/pro/DataTable/PivotView.js.map +1 -1
- package/dist/components/pro/DataTable/components/BulkActions.js +42 -42
- package/dist/components/pro/DataTable/components/BulkActions.js.map +1 -1
- package/dist/components/pro/DataTable/components/ColumnSelector.js +84 -84
- package/dist/components/pro/DataTable/components/ColumnSelector.js.map +1 -1
- package/dist/components/pro/DataTable/components/FilterBar.js +58 -58
- package/dist/components/pro/DataTable/components/FilterBar.js.map +1 -1
- package/dist/components/pro/DataTable/components/TableBody.js +93 -94
- package/dist/components/pro/DataTable/components/TableBody.js.map +1 -1
- package/dist/components/pro/DataTable/components/TableHeader.js +78 -78
- package/dist/components/pro/DataTable/components/TableHeader.js.map +1 -1
- package/dist/components/pro/DataTable/components/TablePagination.js +77 -77
- package/dist/components/pro/DataTable/components/TablePagination.js.map +1 -1
- package/dist/components/pro/DataTable/components/TableToolbar.js +40 -40
- package/dist/components/pro/DataTable/components/TableToolbar.js.map +1 -1
- package/dist/components/pro/DataTable/extension.js +5 -5
- package/dist/components/pro/DataTable/extension.js.map +1 -1
- package/dist/components/pro/DataTable/pivotEngine.js +84 -92
- package/dist/components/pro/DataTable/pivotEngine.js.map +1 -1
- package/dist/components/pro/DataTable/pivotExtension.js +93 -93
- package/dist/components/pro/DataTable/pivotExtension.js.map +1 -1
- package/dist/components/pro/DataTable/rowDetailExtension.js +30 -30
- package/dist/components/pro/DataTable/rowDetailExtension.js.map +1 -1
- package/dist/components/pro/DataTable/tanstack-table.js +45 -62
- package/dist/components/pro/DataTable/tanstack-table.js.map +1 -1
- package/dist/components/pro/DataTable/treeDataUtils.js +37 -48
- package/dist/components/pro/DataTable/treeDataUtils.js.map +1 -1
- package/dist/components/pro/DataTable/useColumnDragReorder.js +68 -68
- package/dist/components/pro/DataTable/useColumnDragReorder.js.map +1 -1
- package/dist/components/pro/DataTable/utils.js +156 -168
- package/dist/components/pro/DataTable/utils.js.map +1 -1
- package/dist/components/pro/FileExplorer/Breadcrumb.js +180 -180
- package/dist/components/pro/FileExplorer/Breadcrumb.js.map +1 -1
- package/dist/components/pro/FileExplorer/CreateDialog.js +78 -78
- package/dist/components/pro/FileExplorer/CreateDialog.js.map +1 -1
- package/dist/components/pro/FileExplorer/FileExplorer.js +202 -205
- package/dist/components/pro/FileExplorer/FileExplorer.js.map +1 -1
- package/dist/components/pro/FileExplorer/FileIcon.js +189 -189
- package/dist/components/pro/FileExplorer/FileIcon.js.map +1 -1
- package/dist/components/pro/FileExplorer/GridView.js +100 -100
- package/dist/components/pro/FileExplorer/GridView.js.map +1 -1
- package/dist/components/pro/FileExplorer/ListView.js +209 -209
- package/dist/components/pro/FileExplorer/ListView.js.map +1 -1
- package/dist/components/pro/FileExplorer/Toolbar.js +199 -199
- package/dist/components/pro/FileExplorer/Toolbar.js.map +1 -1
- package/dist/components/pro/Flow/Flow.js +920 -948
- package/dist/components/pro/Flow/Flow.js.map +1 -1
- package/dist/components/pro/Flow/FlowCanvas.js +1626 -1662
- package/dist/components/pro/Flow/FlowCanvas.js.map +1 -1
- package/dist/components/pro/Flow/archify/build.js +85 -94
- package/dist/components/pro/Flow/archify/build.js.map +1 -1
- package/dist/components/pro/Flow/archify/convert.js +512 -519
- package/dist/components/pro/Flow/archify/convert.js.map +1 -1
- package/dist/components/pro/Flow/archify/palette.js +87 -104
- package/dist/components/pro/Flow/archify/palette.js.map +1 -1
- package/dist/components/pro/Flow/archify/presets.js +34 -37
- package/dist/components/pro/Flow/archify/presets.js.map +1 -1
- package/dist/components/pro/Flow/archify/spec.js +7 -7
- package/dist/components/pro/Flow/archify/spec.js.map +1 -1
- package/dist/components/pro/Flow/canvas/AlignmentGuides.js +25 -25
- package/dist/components/pro/Flow/canvas/AlignmentGuides.js.map +1 -1
- package/dist/components/pro/Flow/canvas/GridRenderer.js +54 -55
- package/dist/components/pro/Flow/canvas/GridRenderer.js.map +1 -1
- package/dist/components/pro/Flow/canvas/MiniMapRenderer.js +54 -58
- package/dist/components/pro/Flow/canvas/MiniMapRenderer.js.map +1 -1
- package/dist/components/pro/Flow/canvas/PixiApp.js +105 -102
- package/dist/components/pro/Flow/canvas/PixiApp.js.map +1 -1
- package/dist/components/pro/Flow/canvas/SelectionOverlay.js +38 -38
- package/dist/components/pro/Flow/canvas/SelectionOverlay.js.map +1 -1
- package/dist/components/pro/Flow/canvas/ViewportContainer.js +117 -117
- package/dist/components/pro/Flow/canvas/ViewportContainer.js.map +1 -1
- package/dist/components/pro/Flow/constants.js +266 -278
- package/dist/components/pro/Flow/constants.js.map +1 -1
- package/dist/components/pro/Flow/context/FlowAIContext.js +27 -28
- package/dist/components/pro/Flow/context/FlowAIContext.js.map +1 -1
- package/dist/components/pro/Flow/context/FlowContext.js +60 -61
- package/dist/components/pro/Flow/context/FlowContext.js.map +1 -1
- package/dist/components/pro/Flow/context/FlowUIContext.js +115 -117
- package/dist/components/pro/Flow/context/FlowUIContext.js.map +1 -1
- package/dist/components/pro/Flow/edges/EdgeRenderer.js +135 -138
- package/dist/components/pro/Flow/edges/EdgeRenderer.js.map +1 -1
- package/dist/components/pro/Flow/edges/edgeMarkers.js +11 -14
- package/dist/components/pro/Flow/edges/edgeMarkers.js.map +1 -1
- package/dist/components/pro/Flow/edges/edgePaths.js +351 -367
- package/dist/components/pro/Flow/edges/edgePaths.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useAlignmentGuides.js +49 -52
- package/dist/components/pro/Flow/hooks/useAlignmentGuides.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useClipboard.js +154 -154
- package/dist/components/pro/Flow/hooks/useClipboard.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useCompactMode.js +17 -17
- package/dist/components/pro/Flow/hooks/useCompactMode.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useDeleteSelection.js +40 -40
- package/dist/components/pro/Flow/hooks/useDeleteSelection.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useDraggablePanel.js +51 -51
- package/dist/components/pro/Flow/hooks/useDraggablePanel.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useEdgeMutations.js +157 -157
- package/dist/components/pro/Flow/hooks/useEdgeMutations.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useFlowImportExport.js +190 -201
- package/dist/components/pro/Flow/hooks/useFlowImportExport.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useKeyboardShortcuts.js +32 -38
- package/dist/components/pro/Flow/hooks/useKeyboardShortcuts.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useLayoutActions.js +172 -180
- package/dist/components/pro/Flow/hooks/useLayoutActions.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useLineMutations.js +57 -57
- package/dist/components/pro/Flow/hooks/useLineMutations.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useMindMap.js +229 -238
- package/dist/components/pro/Flow/hooks/useMindMap.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useNodeMutations.js +102 -102
- package/dist/components/pro/Flow/hooks/useNodeMutations.js.map +1 -1
- package/dist/components/pro/Flow/hooks/usePdfExport.js +55 -56
- package/dist/components/pro/Flow/hooks/usePdfExport.js.map +1 -1
- package/dist/components/pro/Flow/hooks/usePixiApp.js +55 -57
- package/dist/components/pro/Flow/hooks/usePixiApp.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useResizablePanel.js +31 -31
- package/dist/components/pro/Flow/hooks/useResizablePanel.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useSelection.js +69 -69
- package/dist/components/pro/Flow/hooks/useSelection.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useUndoRedo.js +27 -27
- package/dist/components/pro/Flow/hooks/useUndoRedo.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useViewport.js +28 -28
- package/dist/components/pro/Flow/hooks/useViewport.js.map +1 -1
- package/dist/components/pro/Flow/lines/FreehandTool.js +63 -63
- package/dist/components/pro/Flow/lines/FreehandTool.js.map +1 -1
- package/dist/components/pro/Flow/lines/GeometricLineTool.js +80 -80
- package/dist/components/pro/Flow/lines/GeometricLineTool.js.map +1 -1
- package/dist/components/pro/Flow/lines/LineRenderer.js +88 -88
- package/dist/components/pro/Flow/lines/LineRenderer.js.map +1 -1
- package/dist/components/pro/Flow/lines/lineSmoothing.js +32 -34
- package/dist/components/pro/Flow/lines/lineSmoothing.js.map +1 -1
- package/dist/components/pro/Flow/nodes/DataNodeView.js +236 -242
- package/dist/components/pro/Flow/nodes/DataNodeView.js.map +1 -1
- package/dist/components/pro/Flow/nodes/MediaContent.js +236 -246
- package/dist/components/pro/Flow/nodes/MediaContent.js.map +1 -1
- package/dist/components/pro/Flow/nodes/MediaOverlay.js +63 -63
- package/dist/components/pro/Flow/nodes/MediaOverlay.js.map +1 -1
- package/dist/components/pro/Flow/nodes/Model3DView.js +111 -113
- package/dist/components/pro/Flow/nodes/Model3DView.js.map +1 -1
- package/dist/components/pro/Flow/nodes/NodeHandles.js +74 -80
- package/dist/components/pro/Flow/nodes/NodeHandles.js.map +1 -1
- package/dist/components/pro/Flow/nodes/NodeRenderer.js +303 -314
- package/dist/components/pro/Flow/nodes/NodeRenderer.js.map +1 -1
- package/dist/components/pro/Flow/nodes/NodeText.js +25 -29
- package/dist/components/pro/Flow/nodes/NodeText.js.map +1 -1
- package/dist/components/pro/Flow/nodes/aiClient.js +124 -137
- package/dist/components/pro/Flow/nodes/aiClient.js.map +1 -1
- package/dist/components/pro/Flow/nodes/animAnchors.js +42 -49
- package/dist/components/pro/Flow/nodes/animAnchors.js.map +1 -1
- package/dist/components/pro/Flow/nodes/dataUtils.js +246 -267
- package/dist/components/pro/Flow/nodes/dataUtils.js.map +1 -1
- package/dist/components/pro/Flow/nodes/nodeUtils.js +23 -28
- package/dist/components/pro/Flow/nodes/nodeUtils.js.map +1 -1
- package/dist/components/pro/Flow/nodes/shapes.js +556 -589
- package/dist/components/pro/Flow/nodes/shapes.js.map +1 -1
- package/dist/components/pro/Flow/nodes/svgIconTexture.js +37 -39
- package/dist/components/pro/Flow/nodes/svgIconTexture.js.map +1 -1
- package/dist/components/pro/Flow/nodes/svgIcons.js +684 -689
- package/dist/components/pro/Flow/nodes/svgIcons.js.map +1 -1
- package/dist/components/pro/Flow/panels/AIPanel.js +464 -491
- package/dist/components/pro/Flow/panels/AIPanel.js.map +1 -1
- package/dist/components/pro/Flow/panels/Breadcrumb.js +41 -41
- package/dist/components/pro/Flow/panels/Breadcrumb.js.map +1 -1
- package/dist/components/pro/Flow/panels/ContextMenu.js +37 -37
- package/dist/components/pro/Flow/panels/ContextMenu.js.map +1 -1
- package/dist/components/pro/Flow/panels/DataInspectorSection.js +428 -432
- package/dist/components/pro/Flow/panels/DataInspectorSection.js.map +1 -1
- package/dist/components/pro/Flow/panels/ExpandableTextarea.js +61 -62
- package/dist/components/pro/Flow/panels/ExpandableTextarea.js.map +1 -1
- package/dist/components/pro/Flow/panels/FlowPanelGroup.js +114 -114
- package/dist/components/pro/Flow/panels/FlowPanelGroup.js.map +1 -1
- package/dist/components/pro/Flow/panels/FlowToolbar.js +347 -391
- package/dist/components/pro/Flow/panels/FlowToolbar.js.map +1 -1
- package/dist/components/pro/Flow/panels/InspectorPanel.js +1792 -1798
- package/dist/components/pro/Flow/panels/InspectorPanel.js.map +1 -1
- package/dist/components/pro/Flow/panels/OutlinePanel.js +242 -248
- package/dist/components/pro/Flow/panels/OutlinePanel.js.map +1 -1
- package/dist/components/pro/Flow/panels/PresentationMode.js +137 -140
- package/dist/components/pro/Flow/panels/PresentationMode.js.map +1 -1
- package/dist/components/pro/Flow/panels/ProjectTitle.js +46 -46
- package/dist/components/pro/Flow/panels/ProjectTitle.js.map +1 -1
- package/dist/components/pro/Flow/panels/ShapePalette.js +557 -572
- package/dist/components/pro/Flow/panels/ShapePalette.js.map +1 -1
- package/dist/components/pro/Flow/panels/toolbarIcons.d.ts +0 -1
- package/dist/components/pro/Flow/panels/toolbarIcons.js +508 -557
- package/dist/components/pro/Flow/panels/toolbarIcons.js.map +1 -1
- package/dist/components/pro/Flow/types.js +26 -26
- package/dist/components/pro/Flow/types.js.map +1 -1
- package/dist/components/pro/Flow/utils/dashedLine.js +113 -117
- package/dist/components/pro/Flow/utils/dashedLine.js.map +1 -1
- package/dist/components/pro/Flow/utils/gradient.js +55 -55
- package/dist/components/pro/Flow/utils/gradient.js.map +1 -1
- package/dist/components/pro/Flow/utils/pdfExport.js +50 -89
- package/dist/components/pro/Flow/utils/pdfExport.js.map +1 -1
- package/dist/components/pro/Flow/utils/themeColor.js +185 -195
- package/dist/components/pro/Flow/utils/themeColor.js.map +1 -1
- package/dist/components/pro/Gantt/Gantt.d.ts +7 -0
- package/dist/components/pro/Gantt/hooks/useGanttDrag.d.ts +31 -0
- package/dist/components/pro/Gantt/hooks/useGanttState.d.ts +58 -0
- package/dist/components/pro/Gantt/index.d.ts +6 -0
- package/dist/components/pro/Gantt/types.d.ts +478 -0
- package/dist/components/pro/Gantt/utils.d.ts +124 -0
- package/dist/components/pro/Resizable/Resizable.d.ts +30 -0
- package/dist/components/pro/Resizable/index.d.ts +2 -0
- package/dist/components/pro/RichTextEditor/AIRewrite.js +323 -334
- package/dist/components/pro/RichTextEditor/AIRewrite.js.map +1 -1
- package/dist/components/pro/RichTextEditor/BlockHandle.js +314 -316
- package/dist/components/pro/RichTextEditor/BlockHandle.js.map +1 -1
- package/dist/components/pro/RichTextEditor/BubbleToolbar.js +97 -97
- package/dist/components/pro/RichTextEditor/BubbleToolbar.js.map +1 -1
- package/dist/components/pro/RichTextEditor/CommentDialog.js +88 -88
- package/dist/components/pro/RichTextEditor/CommentDialog.js.map +1 -1
- package/dist/components/pro/RichTextEditor/CommentPanel.js +240 -240
- package/dist/components/pro/RichTextEditor/CommentPanel.js.map +1 -1
- package/dist/components/pro/RichTextEditor/CommentPopover.js +234 -234
- package/dist/components/pro/RichTextEditor/CommentPopover.js.map +1 -1
- package/dist/components/pro/RichTextEditor/ContextMenu.js +251 -252
- package/dist/components/pro/RichTextEditor/ContextMenu.js.map +1 -1
- package/dist/components/pro/RichTextEditor/RichTextEditor.js +267 -271
- package/dist/components/pro/RichTextEditor/RichTextEditor.js.map +1 -1
- package/dist/components/pro/RichTextEditor/SlashMenu.js +214 -214
- package/dist/components/pro/RichTextEditor/SlashMenu.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/ColorPicker.js +44 -75
- package/dist/components/pro/RichTextEditor/Toolbar/ColorPicker.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/FloatingDialogMenu.js +261 -261
- package/dist/components/pro/RichTextEditor/Toolbar/FloatingDialogMenu.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/MarkdownTemplates.js +172 -526
- package/dist/components/pro/RichTextEditor/Toolbar/MarkdownTemplates.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/SelectDropdown.js +112 -114
- package/dist/components/pro/RichTextEditor/Toolbar/SelectDropdown.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/TableOpsMenu.js +194 -194
- package/dist/components/pro/RichTextEditor/Toolbar/TableOpsMenu.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.js +970 -973
- package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/ToolbarButton.js +11 -12
- package/dist/components/pro/RichTextEditor/Toolbar/ToolbarButton.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/CodeBlockView.js +310 -344
- package/dist/components/pro/RichTextEditor/extensions/CodeBlockView.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/CommentMark.js +38 -39
- package/dist/components/pro/RichTextEditor/extensions/CommentMark.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/FloatingDialog.js +620 -625
- package/dist/components/pro/RichTextEditor/extensions/FloatingDialog.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/FontSize.js +25 -25
- package/dist/components/pro/RichTextEditor/extensions/FontSize.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.js +167 -176
- package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.js.map +1 -1
- package/dist/components/pro/RichTextEditor/types.js +75 -75
- package/dist/components/pro/RichTextEditor/types.js.map +1 -1
- package/dist/contexts/AppContext.d.ts +1 -1
- package/dist/contexts/AppContext.js +216 -221
- package/dist/contexts/AppContext.js.map +1 -1
- package/dist/data-table.js +15 -41
- package/dist/data-table.js.map +1 -1
- package/dist/dishui.css +1 -1
- package/dist/flow.js +27 -83
- package/dist/hooks/useClickOutside.js +18 -18
- package/dist/hooks/useClickOutside.js.map +1 -1
- package/dist/hooks/useContainerElement.js +9 -9
- package/dist/hooks/useContainerElement.js.map +1 -1
- package/dist/hooks/useControllableState.js +33 -35
- package/dist/hooks/useControllableState.js.map +1 -1
- package/dist/hooks/useCopyToClipboard.js +16 -16
- package/dist/hooks/useCopyToClipboard.js.map +1 -1
- package/dist/hooks/useDebounce.js +14 -14
- package/dist/hooks/useDebounce.js.map +1 -1
- package/dist/hooks/useDraggable.js +50 -50
- package/dist/hooks/useDraggable.js.map +1 -1
- package/dist/hooks/useTableColumns.js +39 -41
- package/dist/hooks/useTableColumns.js.map +1 -1
- package/dist/hooks/useTableData.js +67 -68
- package/dist/hooks/useTableData.js.map +1 -1
- package/dist/index-nostyled.d.ts +8 -0
- package/dist/index.d.ts +31 -3
- package/dist/index.js +106 -241
- package/dist/layouts/MainLayout.js +56 -56
- package/dist/layouts/MainLayout.js.map +1 -1
- package/dist/layouts/Navbar.js +214 -214
- package/dist/layouts/Navbar.js.map +1 -1
- package/dist/layouts/Sidebar.js +184 -186
- package/dist/layouts/Sidebar.js.map +1 -1
- package/dist/layouts/headbar/Headbar.js +25 -25
- package/dist/layouts/headbar/Headbar.js.map +1 -1
- package/dist/layouts/headbar/HeadbarLangSwitcher.js +39 -39
- package/dist/layouts/headbar/HeadbarLangSwitcher.js.map +1 -1
- package/dist/layouts/headbar/HeadbarSearch.js +120 -120
- package/dist/layouts/headbar/HeadbarSearch.js.map +1 -1
- package/dist/layouts/headbar/HeadbarThemeSwitcher.js +27 -27
- package/dist/layouts/headbar/HeadbarThemeSwitcher.js.map +1 -1
- package/dist/layouts/headbar/HeadbarTitle.js +26 -26
- package/dist/layouts/headbar/HeadbarTitle.js.map +1 -1
- package/dist/lite.js +9 -24
- package/dist/markdown.js +4 -9
- package/dist/pages/components/Calendar/index.d.ts +3 -0
- package/dist/pages/components/Calendar/index.en.d.ts +3 -0
- package/dist/pages/components/Calendar/index.zh.d.ts +3 -0
- package/dist/pages/components/Chat/index.d.ts +3 -0
- package/dist/pages/components/Chat/index.en.d.ts +3 -0
- package/dist/pages/components/Chat/index.zh.d.ts +3 -0
- package/dist/pages/components/FloatWindow/index.d.ts +3 -0
- package/dist/pages/components/FloatWindow/index.en.d.ts +3 -0
- package/dist/pages/components/FloatWindow/index.zh.d.ts +3 -0
- package/dist/pages/components/Gantt/index.d.ts +3 -0
- package/dist/pages/components/Gantt/index.en.d.ts +3 -0
- package/dist/pages/components/Gantt/index.zh.d.ts +3 -0
- package/dist/pages/components/GridLayout/index.d.ts +3 -0
- package/dist/pages/components/GridLayout/index.en.d.ts +3 -0
- package/dist/pages/components/GridLayout/index.zh.d.ts +3 -0
- package/dist/pages/components/Notification/index.d.ts +3 -0
- package/dist/pages/components/Notification/index.en.d.ts +3 -0
- package/dist/pages/components/Notification/index.zh.d.ts +3 -0
- package/dist/pages/components/Resizable/index.d.ts +3 -0
- package/dist/pages/components/Resizable/index.en.d.ts +3 -0
- package/dist/pages/components/Resizable/index.zh.d.ts +3 -0
- package/dist/pages/components/Tab/index.d.ts +3 -0
- package/dist/pages/components/Tab/index.en.d.ts +3 -0
- package/dist/pages/components/Tab/index.zh.d.ts +3 -0
- package/dist/styles/themeStyles.js +87 -86
- package/dist/styles/themeStyles.js.map +1 -1
- package/dist/utils/cn.d.ts +13 -0
- package/dist/utils/cn.js +16 -0
- package/dist/utils/cn.js.map +1 -0
- package/dist/utils/i18n.js +700 -602
- package/dist/utils/i18n.js.map +1 -1
- package/dist/utils/menu.js +94 -94
- package/dist/utils/menu.js.map +1 -1
- package/dist/utils/rehype-code-meta.js +14 -14
- package/dist/utils/rehype-code-meta.js.map +1 -1
- package/dist/utils/remark-code-meta.js +9 -9
- package/dist/utils/remark-code-meta.js.map +1 -1
- package/dist/utils/routerBuilder.js +59 -60
- package/dist/utils/routerBuilder.js.map +1 -1
- package/dist/utils/selection.js +28 -29
- package/dist/utils/selection.js.map +1 -1
- package/dist/utils/themes.js +275 -255
- package/dist/utils/themes.js.map +1 -1
- package/package.json +19 -6
- package/dist/components/StatCard/index.d.ts +0 -24
- package/dist/components/StatCard/index.js +0 -90
- package/dist/components/StatCard/index.js.map +0 -1
|
@@ -1,239 +1,239 @@
|
|
|
1
|
-
import { useCallback as
|
|
2
|
-
import { jsx as
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { useCallback as e, useEffect as t, useRef as n, useState as r } from "react";
|
|
2
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
3
|
+
//#region src/components/pro/RichTextEditor/CommentPopover.tsx
|
|
4
|
+
function o() {
|
|
5
|
+
return `c_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
|
|
5
6
|
}
|
|
6
|
-
function
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
function s(e) {
|
|
8
|
+
let t = Date.now() - e, n = Math.floor(t / 1e3);
|
|
9
|
+
if (n < 60) return "just now";
|
|
10
|
+
let r = Math.floor(n / 60);
|
|
11
|
+
if (r < 60) return `${r}m ago`;
|
|
12
|
+
let i = Math.floor(r / 60);
|
|
13
|
+
return i < 24 ? `${i}h ago` : `${Math.floor(i / 24)}d ago`;
|
|
13
14
|
}
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
};
|
|
235
|
-
export {
|
|
236
|
-
z as default
|
|
15
|
+
var c = ({ editor: c, threads: l, onThreadsChange: u, showPanel: d, onOpenPanel: f, onScrollToThread: p, currentUser: m = "User" }) => {
|
|
16
|
+
let [h, g] = r(null), [_, v] = r({
|
|
17
|
+
x: 0,
|
|
18
|
+
y: 0
|
|
19
|
+
}), [y, b] = r(""), x = n(null), S = n(null);
|
|
20
|
+
t(() => {
|
|
21
|
+
let e = c.view.dom, t = (t) => {
|
|
22
|
+
let n = t.target.closest(".rte-comment-mark");
|
|
23
|
+
if (!n) {
|
|
24
|
+
g(null);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
let r = n.getAttribute("data-comment-id");
|
|
28
|
+
if (!r) return;
|
|
29
|
+
let i = l.find((e) => e.id === r);
|
|
30
|
+
if (!i || i.resolved) return;
|
|
31
|
+
if (d) {
|
|
32
|
+
p(r), g(null);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
let a = e.closest(".rte-editor-wrapper");
|
|
36
|
+
if (!a) return;
|
|
37
|
+
let o = a.getBoundingClientRect(), s = n.getBoundingClientRect();
|
|
38
|
+
v({
|
|
39
|
+
x: s.left - o.left + s.width / 2,
|
|
40
|
+
y: s.bottom - o.top + 6
|
|
41
|
+
}), g(i), b("");
|
|
42
|
+
};
|
|
43
|
+
return e.addEventListener("click", t), () => e.removeEventListener("click", t);
|
|
44
|
+
}, [
|
|
45
|
+
c,
|
|
46
|
+
l,
|
|
47
|
+
d,
|
|
48
|
+
p
|
|
49
|
+
]), t(() => {
|
|
50
|
+
if (!h) return;
|
|
51
|
+
let e = (e) => {
|
|
52
|
+
x.current && !x.current.contains(e.target) && g(null);
|
|
53
|
+
};
|
|
54
|
+
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
55
|
+
}, [h]), t(() => {
|
|
56
|
+
h && S.current && S.current.focus();
|
|
57
|
+
}, [h]);
|
|
58
|
+
let C = e(() => {
|
|
59
|
+
h && (u(l.map((e) => e.id === h.id ? (c.state.doc.descendants((e, t) => {
|
|
60
|
+
e.marks.forEach((n) => {
|
|
61
|
+
n.type.name === "comment" && n.attrs.commentId === h.id && c.view.dispatch(c.state.tr.removeMark(t, t + e.nodeSize, n).addMark(t, t + e.nodeSize, n.type.create({
|
|
62
|
+
...n.attrs,
|
|
63
|
+
resolved: !0
|
|
64
|
+
})));
|
|
65
|
+
});
|
|
66
|
+
}), {
|
|
67
|
+
...e,
|
|
68
|
+
resolved: !0
|
|
69
|
+
}) : e)), g(null));
|
|
70
|
+
}, [
|
|
71
|
+
h,
|
|
72
|
+
c,
|
|
73
|
+
l,
|
|
74
|
+
u
|
|
75
|
+
]), w = e(() => {
|
|
76
|
+
if (!h || !y.trim()) return;
|
|
77
|
+
let e = {
|
|
78
|
+
id: o(),
|
|
79
|
+
author: m,
|
|
80
|
+
text: y.trim(),
|
|
81
|
+
createdAt: Date.now()
|
|
82
|
+
}, t = l.map((t) => t.id === h.id ? {
|
|
83
|
+
...t,
|
|
84
|
+
comments: [...t.comments, e]
|
|
85
|
+
} : t);
|
|
86
|
+
u(t), g(t.find((e) => e.id === h.id) || null), b("");
|
|
87
|
+
}, [
|
|
88
|
+
h,
|
|
89
|
+
y,
|
|
90
|
+
l,
|
|
91
|
+
u,
|
|
92
|
+
m
|
|
93
|
+
]);
|
|
94
|
+
return h ? /* @__PURE__ */ a("div", {
|
|
95
|
+
ref: x,
|
|
96
|
+
className: "rte-comment-popover",
|
|
97
|
+
style: {
|
|
98
|
+
left: _.x,
|
|
99
|
+
top: _.y
|
|
100
|
+
},
|
|
101
|
+
children: [
|
|
102
|
+
/* @__PURE__ */ a("div", {
|
|
103
|
+
className: "rte-comment-popover__header",
|
|
104
|
+
children: [/* @__PURE__ */ i("span", {
|
|
105
|
+
className: "rte-comment-popover__status",
|
|
106
|
+
children: "Open"
|
|
107
|
+
}), /* @__PURE__ */ a("div", {
|
|
108
|
+
className: "rte-comment-popover__actions",
|
|
109
|
+
children: [
|
|
110
|
+
/* @__PURE__ */ i("button", {
|
|
111
|
+
type: "button",
|
|
112
|
+
className: "rte-comments__icon-btn",
|
|
113
|
+
onClick: C,
|
|
114
|
+
title: "Resolve",
|
|
115
|
+
children: /* @__PURE__ */ i("svg", {
|
|
116
|
+
width: "14",
|
|
117
|
+
height: "14",
|
|
118
|
+
viewBox: "0 0 24 24",
|
|
119
|
+
fill: "none",
|
|
120
|
+
stroke: "currentColor",
|
|
121
|
+
strokeWidth: "2",
|
|
122
|
+
children: /* @__PURE__ */ i("polyline", { points: "20 6 9 17 4 12" })
|
|
123
|
+
})
|
|
124
|
+
}),
|
|
125
|
+
/* @__PURE__ */ i("button", {
|
|
126
|
+
type: "button",
|
|
127
|
+
className: "rte-comments__icon-btn",
|
|
128
|
+
onClick: () => {
|
|
129
|
+
f(), g(null);
|
|
130
|
+
},
|
|
131
|
+
title: "Open panel",
|
|
132
|
+
children: /* @__PURE__ */ a("svg", {
|
|
133
|
+
width: "14",
|
|
134
|
+
height: "14",
|
|
135
|
+
viewBox: "0 0 24 24",
|
|
136
|
+
fill: "none",
|
|
137
|
+
stroke: "currentColor",
|
|
138
|
+
strokeWidth: "2",
|
|
139
|
+
children: [
|
|
140
|
+
/* @__PURE__ */ i("polyline", { points: "15 3 21 3 21 9" }),
|
|
141
|
+
/* @__PURE__ */ i("polyline", { points: "9 21 3 21 3 15" }),
|
|
142
|
+
/* @__PURE__ */ i("line", {
|
|
143
|
+
x1: "21",
|
|
144
|
+
y1: "3",
|
|
145
|
+
x2: "14",
|
|
146
|
+
y2: "10"
|
|
147
|
+
}),
|
|
148
|
+
/* @__PURE__ */ i("line", {
|
|
149
|
+
x1: "3",
|
|
150
|
+
y1: "21",
|
|
151
|
+
x2: "10",
|
|
152
|
+
y2: "14"
|
|
153
|
+
})
|
|
154
|
+
]
|
|
155
|
+
})
|
|
156
|
+
}),
|
|
157
|
+
/* @__PURE__ */ i("button", {
|
|
158
|
+
type: "button",
|
|
159
|
+
className: "rte-comments__icon-btn",
|
|
160
|
+
onClick: () => g(null),
|
|
161
|
+
title: "Close",
|
|
162
|
+
children: /* @__PURE__ */ a("svg", {
|
|
163
|
+
width: "14",
|
|
164
|
+
height: "14",
|
|
165
|
+
viewBox: "0 0 24 24",
|
|
166
|
+
fill: "none",
|
|
167
|
+
stroke: "currentColor",
|
|
168
|
+
strokeWidth: "2",
|
|
169
|
+
children: [/* @__PURE__ */ i("line", {
|
|
170
|
+
x1: "18",
|
|
171
|
+
y1: "6",
|
|
172
|
+
x2: "6",
|
|
173
|
+
y2: "18"
|
|
174
|
+
}), /* @__PURE__ */ i("line", {
|
|
175
|
+
x1: "6",
|
|
176
|
+
y1: "6",
|
|
177
|
+
x2: "18",
|
|
178
|
+
y2: "18"
|
|
179
|
+
})]
|
|
180
|
+
})
|
|
181
|
+
})
|
|
182
|
+
]
|
|
183
|
+
})]
|
|
184
|
+
}),
|
|
185
|
+
h.comments.map((e) => /* @__PURE__ */ a("div", {
|
|
186
|
+
className: "rte-comment-popover__comment",
|
|
187
|
+
children: [/* @__PURE__ */ a("div", {
|
|
188
|
+
className: "rte-comments__comment-meta",
|
|
189
|
+
children: [/* @__PURE__ */ i("span", {
|
|
190
|
+
className: "rte-comments__author",
|
|
191
|
+
children: e.author
|
|
192
|
+
}), /* @__PURE__ */ i("span", {
|
|
193
|
+
className: "rte-comments__time",
|
|
194
|
+
children: s(e.createdAt)
|
|
195
|
+
})]
|
|
196
|
+
}), /* @__PURE__ */ i("div", {
|
|
197
|
+
className: "rte-comments__comment-text",
|
|
198
|
+
children: e.text
|
|
199
|
+
})]
|
|
200
|
+
}, e.id)),
|
|
201
|
+
/* @__PURE__ */ a("div", {
|
|
202
|
+
className: "rte-comment-popover__reply",
|
|
203
|
+
children: [/* @__PURE__ */ i("input", {
|
|
204
|
+
ref: S,
|
|
205
|
+
className: "rte-comments__reply-input",
|
|
206
|
+
value: y,
|
|
207
|
+
onChange: (e) => b(e.target.value),
|
|
208
|
+
onKeyDown: (e) => {
|
|
209
|
+
e.key === "Enter" && w(), e.key === "Escape" && g(null);
|
|
210
|
+
},
|
|
211
|
+
placeholder: "Reply..."
|
|
212
|
+
}), /* @__PURE__ */ i("button", {
|
|
213
|
+
type: "button",
|
|
214
|
+
className: "rte-comments__reply-send",
|
|
215
|
+
onClick: w,
|
|
216
|
+
disabled: !y.trim(),
|
|
217
|
+
children: /* @__PURE__ */ a("svg", {
|
|
218
|
+
width: "12",
|
|
219
|
+
height: "12",
|
|
220
|
+
viewBox: "0 0 24 24",
|
|
221
|
+
fill: "none",
|
|
222
|
+
stroke: "currentColor",
|
|
223
|
+
strokeWidth: "2",
|
|
224
|
+
children: [/* @__PURE__ */ i("line", {
|
|
225
|
+
x1: "22",
|
|
226
|
+
y1: "2",
|
|
227
|
+
x2: "11",
|
|
228
|
+
y2: "13"
|
|
229
|
+
}), /* @__PURE__ */ i("polygon", { points: "22 2 15 22 11 13 2 9 22 2" })]
|
|
230
|
+
})
|
|
231
|
+
})]
|
|
232
|
+
})
|
|
233
|
+
]
|
|
234
|
+
}) : null;
|
|
237
235
|
};
|
|
236
|
+
//#endregion
|
|
237
|
+
export { c as default };
|
|
238
238
|
|
|
239
239
|
//# sourceMappingURL=CommentPopover.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommentPopover.js","names":[],"sources":["../../../../src/components/pro/RichTextEditor/CommentPopover.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, useCallback } from 'react';\nimport type { Editor } from '@tiptap/react';\nimport type { CommentThread, CommentItem } from './extensions/CommentMark';\n\nfunction generateId() {\n return `c_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;\n}\n\nfunction timeAgo(ts: number): string {\n const diff = Date.now() - ts;\n const sec = Math.floor(diff / 1000);\n if (sec < 60) return 'just now';\n const min = Math.floor(sec / 60);\n if (min < 60) return `${min}m ago`;\n const hr = Math.floor(min / 60);\n if (hr < 24) return `${hr}h ago`;\n const d = Math.floor(hr / 24);\n return `${d}d ago`;\n}\n\ninterface CommentPopoverProps {\n editor: Editor;\n threads: CommentThread[];\n onThreadsChange: (threads: CommentThread[]) => void;\n showPanel: boolean;\n onOpenPanel: () => void;\n onScrollToThread: (id: string) => void;\n currentUser?: string;\n}\n\nconst CommentPopover: React.FC<CommentPopoverProps> = ({\n editor,\n threads,\n onThreadsChange,\n showPanel,\n onOpenPanel,\n onScrollToThread,\n currentUser = 'User',\n}) => {\n const [activeThread, setActiveThread] = useState<CommentThread | null>(null);\n const [pos, setPos] = useState({ x: 0, y: 0 });\n const [replyText, setReplyText] = useState('');\n const popRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n const dom = editor.view.dom;\n const handleClick = (e: Event) => {\n const target = e.target as HTMLElement;\n const commentEl = target.closest('.rte-comment-mark') as HTMLElement | null;\n if (!commentEl) { setActiveThread(null); return; }\n\n const commentId = commentEl.getAttribute('data-comment-id');\n if (!commentId) return;\n\n const thread = threads.find((t) => t.id === commentId);\n if (!thread || thread.resolved) return;\n\n if (showPanel) {\n onScrollToThread(commentId);\n setActiveThread(null);\n return;\n }\n\n const wrapperEl = dom.closest('.rte-editor-wrapper');\n if (!wrapperEl) return;\n const wRect = wrapperEl.getBoundingClientRect();\n const elRect = commentEl.getBoundingClientRect();\n\n setPos({\n x: elRect.left - wRect.left + elRect.width / 2,\n y: elRect.bottom - wRect.top + 6,\n });\n setActiveThread(thread);\n setReplyText('');\n };\n\n dom.addEventListener('click', handleClick);\n return () => dom.removeEventListener('click', handleClick);\n }, [editor, threads, showPanel, onScrollToThread]);\n\n useEffect(() => {\n if (!activeThread) return;\n const handler = (e: MouseEvent) => {\n if (popRef.current && !popRef.current.contains(e.target as Node)) {\n setActiveThread(null);\n }\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, [activeThread]);\n\n useEffect(() => {\n if (activeThread && inputRef.current) inputRef.current.focus();\n }, [activeThread]);\n\n const toggleResolve = useCallback(() => {\n if (!activeThread) return;\n const updated = threads.map((t) => {\n if (t.id !== activeThread.id) return t;\n editor.state.doc.descendants((node, pos) => {\n node.marks.forEach((mark) => {\n if (mark.type.name === 'comment' && mark.attrs.commentId === activeThread.id) {\n editor.view.dispatch(\n editor.state.tr\n .removeMark(pos, pos + node.nodeSize, mark)\n .addMark(pos, pos + node.nodeSize, mark.type.create({ ...mark.attrs, resolved: true }))\n );\n }\n });\n });\n return { ...t, resolved: true };\n });\n onThreadsChange(updated);\n setActiveThread(null);\n }, [activeThread, editor, threads, onThreadsChange]);\n\n const addReply = useCallback(() => {\n if (!activeThread || !replyText.trim()) return;\n const reply: CommentItem = {\n id: generateId(),\n author: currentUser,\n text: replyText.trim(),\n createdAt: Date.now(),\n };\n const updated = threads.map((t) =>\n t.id === activeThread.id ? { ...t, comments: [...t.comments, reply] } : t\n );\n onThreadsChange(updated);\n setActiveThread(updated.find((t) => t.id === activeThread.id) || null);\n setReplyText('');\n }, [activeThread, replyText, threads, onThreadsChange, currentUser]);\n\n if (!activeThread) return null;\n\n return (\n <div ref={popRef} className=\"rte-comment-popover\" style={{ left: pos.x, top: pos.y }}>\n <div className=\"rte-comment-popover__header\">\n <span className=\"rte-comment-popover__status\">Open</span>\n <div className=\"rte-comment-popover__actions\">\n <button type=\"button\" className=\"rte-comments__icon-btn\" onClick={toggleResolve} title=\"Resolve\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><polyline points=\"20 6 9 17 4 12\" /></svg>\n </button>\n <button type=\"button\" className=\"rte-comments__icon-btn\" onClick={() => { onOpenPanel(); setActiveThread(null); }} title=\"Open panel\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><polyline points=\"15 3 21 3 21 9\" /><polyline points=\"9 21 3 21 3 15\" /><line x1=\"21\" y1=\"3\" x2=\"14\" y2=\"10\" /><line x1=\"3\" y1=\"21\" x2=\"10\" y2=\"14\" /></svg>\n </button>\n <button type=\"button\" className=\"rte-comments__icon-btn\" onClick={() => setActiveThread(null)} title=\"Close\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" /><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" /></svg>\n </button>\n </div>\n </div>\n\n {activeThread.comments.map((c) => (\n <div key={c.id} className=\"rte-comment-popover__comment\">\n <div className=\"rte-comments__comment-meta\">\n <span className=\"rte-comments__author\">{c.author}</span>\n <span className=\"rte-comments__time\">{timeAgo(c.createdAt)}</span>\n </div>\n <div className=\"rte-comments__comment-text\">{c.text}</div>\n </div>\n ))}\n\n <div className=\"rte-comment-popover__reply\">\n <input\n ref={inputRef}\n className=\"rte-comments__reply-input\"\n value={replyText}\n onChange={(e) => setReplyText(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') addReply();\n if (e.key === 'Escape') setActiveThread(null);\n }}\n placeholder=\"Reply...\"\n />\n <button type=\"button\" className=\"rte-comments__reply-send\" onClick={addReply} disabled={!replyText.trim()}>\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\" /><polygon points=\"22 2 15 22 11 13 2 9 22 2\" /></svg>\n </button>\n </div>\n </div>\n );\n};\n\nexport default CommentPopover;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CommentPopover.js","names":[],"sources":["../../../../src/components/pro/RichTextEditor/CommentPopover.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, useCallback } from 'react';\nimport type { Editor } from '@tiptap/react';\nimport type { CommentThread, CommentItem } from './extensions/CommentMark';\n\nfunction generateId() {\n return `c_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;\n}\n\nfunction timeAgo(ts: number): string {\n const diff = Date.now() - ts;\n const sec = Math.floor(diff / 1000);\n if (sec < 60) return 'just now';\n const min = Math.floor(sec / 60);\n if (min < 60) return `${min}m ago`;\n const hr = Math.floor(min / 60);\n if (hr < 24) return `${hr}h ago`;\n const d = Math.floor(hr / 24);\n return `${d}d ago`;\n}\n\ninterface CommentPopoverProps {\n editor: Editor;\n threads: CommentThread[];\n onThreadsChange: (threads: CommentThread[]) => void;\n showPanel: boolean;\n onOpenPanel: () => void;\n onScrollToThread: (id: string) => void;\n currentUser?: string;\n}\n\nconst CommentPopover: React.FC<CommentPopoverProps> = ({\n editor,\n threads,\n onThreadsChange,\n showPanel,\n onOpenPanel,\n onScrollToThread,\n currentUser = 'User',\n}) => {\n const [activeThread, setActiveThread] = useState<CommentThread | null>(null);\n const [pos, setPos] = useState({ x: 0, y: 0 });\n const [replyText, setReplyText] = useState('');\n const popRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n const dom = editor.view.dom;\n const handleClick = (e: Event) => {\n const target = e.target as HTMLElement;\n const commentEl = target.closest('.rte-comment-mark') as HTMLElement | null;\n if (!commentEl) { setActiveThread(null); return; }\n\n const commentId = commentEl.getAttribute('data-comment-id');\n if (!commentId) return;\n\n const thread = threads.find((t) => t.id === commentId);\n if (!thread || thread.resolved) return;\n\n if (showPanel) {\n onScrollToThread(commentId);\n setActiveThread(null);\n return;\n }\n\n const wrapperEl = dom.closest('.rte-editor-wrapper');\n if (!wrapperEl) return;\n const wRect = wrapperEl.getBoundingClientRect();\n const elRect = commentEl.getBoundingClientRect();\n\n setPos({\n x: elRect.left - wRect.left + elRect.width / 2,\n y: elRect.bottom - wRect.top + 6,\n });\n setActiveThread(thread);\n setReplyText('');\n };\n\n dom.addEventListener('click', handleClick);\n return () => dom.removeEventListener('click', handleClick);\n }, [editor, threads, showPanel, onScrollToThread]);\n\n useEffect(() => {\n if (!activeThread) return;\n const handler = (e: MouseEvent) => {\n if (popRef.current && !popRef.current.contains(e.target as Node)) {\n setActiveThread(null);\n }\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, [activeThread]);\n\n useEffect(() => {\n if (activeThread && inputRef.current) inputRef.current.focus();\n }, [activeThread]);\n\n const toggleResolve = useCallback(() => {\n if (!activeThread) return;\n const updated = threads.map((t) => {\n if (t.id !== activeThread.id) return t;\n editor.state.doc.descendants((node, pos) => {\n node.marks.forEach((mark) => {\n if (mark.type.name === 'comment' && mark.attrs.commentId === activeThread.id) {\n editor.view.dispatch(\n editor.state.tr\n .removeMark(pos, pos + node.nodeSize, mark)\n .addMark(pos, pos + node.nodeSize, mark.type.create({ ...mark.attrs, resolved: true }))\n );\n }\n });\n });\n return { ...t, resolved: true };\n });\n onThreadsChange(updated);\n setActiveThread(null);\n }, [activeThread, editor, threads, onThreadsChange]);\n\n const addReply = useCallback(() => {\n if (!activeThread || !replyText.trim()) return;\n const reply: CommentItem = {\n id: generateId(),\n author: currentUser,\n text: replyText.trim(),\n createdAt: Date.now(),\n };\n const updated = threads.map((t) =>\n t.id === activeThread.id ? { ...t, comments: [...t.comments, reply] } : t\n );\n onThreadsChange(updated);\n setActiveThread(updated.find((t) => t.id === activeThread.id) || null);\n setReplyText('');\n }, [activeThread, replyText, threads, onThreadsChange, currentUser]);\n\n if (!activeThread) return null;\n\n return (\n <div ref={popRef} className=\"rte-comment-popover\" style={{ left: pos.x, top: pos.y }}>\n <div className=\"rte-comment-popover__header\">\n <span className=\"rte-comment-popover__status\">Open</span>\n <div className=\"rte-comment-popover__actions\">\n <button type=\"button\" className=\"rte-comments__icon-btn\" onClick={toggleResolve} title=\"Resolve\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><polyline points=\"20 6 9 17 4 12\" /></svg>\n </button>\n <button type=\"button\" className=\"rte-comments__icon-btn\" onClick={() => { onOpenPanel(); setActiveThread(null); }} title=\"Open panel\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><polyline points=\"15 3 21 3 21 9\" /><polyline points=\"9 21 3 21 3 15\" /><line x1=\"21\" y1=\"3\" x2=\"14\" y2=\"10\" /><line x1=\"3\" y1=\"21\" x2=\"10\" y2=\"14\" /></svg>\n </button>\n <button type=\"button\" className=\"rte-comments__icon-btn\" onClick={() => setActiveThread(null)} title=\"Close\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" /><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" /></svg>\n </button>\n </div>\n </div>\n\n {activeThread.comments.map((c) => (\n <div key={c.id} className=\"rte-comment-popover__comment\">\n <div className=\"rte-comments__comment-meta\">\n <span className=\"rte-comments__author\">{c.author}</span>\n <span className=\"rte-comments__time\">{timeAgo(c.createdAt)}</span>\n </div>\n <div className=\"rte-comments__comment-text\">{c.text}</div>\n </div>\n ))}\n\n <div className=\"rte-comment-popover__reply\">\n <input\n ref={inputRef}\n className=\"rte-comments__reply-input\"\n value={replyText}\n onChange={(e) => setReplyText(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') addReply();\n if (e.key === 'Escape') setActiveThread(null);\n }}\n placeholder=\"Reply...\"\n />\n <button type=\"button\" className=\"rte-comments__reply-send\" onClick={addReply} disabled={!replyText.trim()}>\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\" /><polygon points=\"22 2 15 22 11 13 2 9 22 2\" /></svg>\n </button>\n </div>\n </div>\n );\n};\n\nexport default CommentPopover;\n"],"mappings":"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"}
|