@vertesia/ui 1.0.0-dev.20260128.144200 → 1.0.0-dev.20260225.024852Z
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/lib/esm/core/components/InputList.js +1 -1
- package/lib/esm/core/components/InputList.js.map +1 -1
- package/lib/esm/core/components/Overlay.js +1 -1
- package/lib/esm/core/components/Overlay.js.map +1 -1
- package/lib/esm/core/components/SidePanel.js +8 -2
- package/lib/esm/core/components/SidePanel.js.map +1 -1
- package/lib/esm/core/components/Switch.js +1 -1
- package/lib/esm/core/components/Switch.js.map +1 -1
- package/lib/esm/core/components/index.js +0 -8
- package/lib/esm/core/components/index.js.map +1 -1
- package/lib/esm/core/components/shadcn/MessageBox.js.map +1 -0
- package/lib/esm/core/components/shadcn/Panel.js +13 -0
- package/lib/esm/core/components/shadcn/Panel.js.map +1 -0
- package/lib/esm/core/components/{Badge.js → shadcn/badge.js} +2 -2
- package/lib/esm/core/components/shadcn/badge.js.map +1 -0
- package/lib/esm/core/components/shadcn/command.js +1 -1
- package/lib/esm/core/components/shadcn/command.js.map +1 -1
- package/lib/esm/core/components/shadcn/filters/filterBar.js +73 -83
- package/lib/esm/core/components/shadcn/filters/filterBar.js.map +1 -1
- package/lib/esm/core/components/shadcn/index.js +4 -2
- package/lib/esm/core/components/shadcn/index.js.map +1 -1
- package/lib/esm/core/components/shadcn/modal/ConfirmModal.js +10 -0
- package/lib/esm/core/components/shadcn/modal/ConfirmModal.js.map +1 -0
- package/lib/esm/core/components/{DeleteModal.js → shadcn/modal/DeleteModal.js} +1 -1
- package/lib/esm/core/components/shadcn/modal/DeleteModal.js.map +1 -0
- package/lib/esm/core/components/shadcn/{dialog.js → modal/dialog.js} +19 -15
- package/lib/esm/core/components/shadcn/modal/dialog.js.map +1 -0
- package/lib/esm/core/components/shadcn/modal/index.js +4 -0
- package/lib/esm/core/components/shadcn/modal/index.js.map +1 -0
- package/lib/esm/core/components/shadcn/popover.js +4 -2
- package/lib/esm/core/components/shadcn/popover.js.map +1 -1
- package/lib/esm/core/components/shadcn/selectBox.js +19 -15
- package/lib/esm/core/components/shadcn/selectBox.js.map +1 -1
- package/lib/esm/core/components/shadcn/tabs.js +16 -14
- package/lib/esm/core/components/shadcn/tabs.js.map +1 -1
- package/lib/esm/core/components/shadcn/textarea.js +30 -2
- package/lib/esm/core/components/shadcn/textarea.js.map +1 -1
- package/lib/esm/core/components/shadcn/tooltip.js +5 -1
- package/lib/esm/core/components/shadcn/tooltip.js.map +1 -1
- package/lib/esm/features/agent/PayloadBuilder.js +45 -0
- package/lib/esm/features/agent/PayloadBuilder.js.map +1 -1
- package/lib/esm/features/agent/chat/AgentChart.js +12 -232
- package/lib/esm/features/agent/chat/AgentChart.js.map +1 -1
- package/lib/esm/features/agent/chat/AskUserWidget.js +2 -1
- package/lib/esm/features/agent/chat/AskUserWidget.js.map +1 -1
- package/lib/esm/features/agent/chat/DocumentPanel.js +46 -0
- package/lib/esm/features/agent/chat/DocumentPanel.js.map +1 -0
- package/lib/esm/features/agent/chat/DocumentTabBar.js +17 -0
- package/lib/esm/features/agent/chat/DocumentTabBar.js.map +1 -0
- package/lib/esm/features/agent/chat/ModernAgentConversation.js +159 -402
- package/lib/esm/features/agent/chat/ModernAgentConversation.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +99 -57
- package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/BatchProgressPanel.js +4 -4
- package/lib/esm/features/agent/chat/ModernAgentOutput/BatchProgressPanel.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js +4 -4
- package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js +3 -3
- package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageInput.js +25 -22
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageInput.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js +110 -55
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/StreamingMessage.js +2 -2
- package/lib/esm/features/agent/chat/ModernAgentOutput/StreamingMessage.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/ToolCallGroup.js +146 -55
- package/lib/esm/features/agent/chat/ModernAgentOutput/ToolCallGroup.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js +5 -6
- package/lib/esm/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/utils.js +110 -2
- package/lib/esm/features/agent/chat/ModernAgentOutput/utils.js.map +1 -1
- package/lib/esm/features/agent/chat/SkillWidgetProvider.js +28 -15
- package/lib/esm/features/agent/chat/SkillWidgetProvider.js.map +1 -1
- package/lib/esm/features/agent/chat/hooks/useAgentPlans.js +146 -0
- package/lib/esm/features/agent/chat/hooks/useAgentPlans.js.map +1 -0
- package/lib/esm/features/agent/chat/hooks/useAgentStream.js +180 -0
- package/lib/esm/features/agent/chat/hooks/useAgentStream.js.map +1 -0
- package/lib/esm/features/agent/chat/hooks/useDocumentPanel.js +100 -0
- package/lib/esm/features/agent/chat/hooks/useDocumentPanel.js.map +1 -0
- package/lib/esm/features/agent/chat/hooks/useFileProcessing.js +90 -0
- package/lib/esm/features/agent/chat/hooks/useFileProcessing.js.map +1 -0
- package/lib/esm/features/agent/chat/index.js +6 -5
- package/lib/esm/features/agent/chat/index.js.map +1 -1
- package/lib/esm/features/agent/chat/types/document.js +2 -0
- package/lib/esm/features/agent/chat/types/document.js.map +1 -0
- package/lib/esm/features/agent/index.js +0 -2
- package/lib/esm/features/agent/index.js.map +1 -1
- package/lib/esm/features/store/collections/BrowseCollectionView.js +4 -6
- package/lib/esm/features/store/collections/BrowseCollectionView.js.map +1 -1
- package/lib/esm/features/store/collections/CreateCollection.js +4 -4
- package/lib/esm/features/store/collections/CreateCollection.js.map +1 -1
- package/lib/esm/features/store/collections/EditCollectionView.js +1 -1
- package/lib/esm/features/store/collections/EditCollectionView.js.map +1 -1
- package/lib/esm/features/store/objects/DocumentSearchResults.js +5 -5
- package/lib/esm/features/store/objects/DocumentSearchResults.js.map +1 -1
- package/lib/esm/features/store/objects/ExportPropertiesModal.js +3 -3
- package/lib/esm/features/store/objects/ExportPropertiesModal.js.map +1 -1
- package/lib/esm/features/store/objects/components/ContentOverview.js +19 -120
- package/lib/esm/features/store/objects/components/ContentOverview.js.map +1 -1
- package/lib/esm/features/store/objects/components/PropertiesEditorModal.js +1 -1
- package/lib/esm/features/store/objects/components/PropertiesEditorModal.js.map +1 -1
- package/lib/esm/features/store/objects/components/SelectDocumentModal.js +2 -2
- package/lib/esm/features/store/objects/components/SelectDocumentModal.js.map +1 -1
- package/lib/esm/features/store/objects/components/VectorSearchWidget.js +1 -1
- package/lib/esm/features/store/objects/components/VectorSearchWidget.js.map +1 -1
- package/lib/esm/features/store/objects/components/index.js +1 -1
- package/lib/esm/features/store/objects/components/index.js.map +1 -1
- package/lib/esm/features/store/objects/components/useDownloadFile.js +192 -0
- package/lib/esm/features/store/objects/components/useDownloadFile.js.map +1 -0
- package/lib/esm/features/store/objects/search/DocumentSearchContext.js +1 -2
- package/lib/esm/features/store/objects/search/DocumentSearchContext.js.map +1 -1
- package/lib/esm/features/store/objects/selection/SelectionActions.js +5 -8
- package/lib/esm/features/store/objects/selection/SelectionActions.js.map +1 -1
- package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js +4 -4
- package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js.map +1 -1
- package/lib/esm/features/store/objects/selection/actions/ChangeTypeAction.js +2 -2
- package/lib/esm/features/store/objects/selection/actions/ChangeTypeAction.js.map +1 -1
- package/lib/esm/features/store/objects/selection/actions/ExportPropertiesAction.js +1 -1
- package/lib/esm/features/store/objects/selection/actions/ExportPropertiesAction.js.map +1 -1
- package/lib/esm/features/store/objects/selection/actions/StartWorkflowComponent.js +3 -3
- package/lib/esm/features/store/objects/selection/actions/StartWorkflowComponent.js.map +1 -1
- package/lib/esm/features/store/objects/upload/DocumentUploadModal.js +13 -13
- package/lib/esm/features/store/objects/upload/DocumentUploadModal.js.map +1 -1
- package/lib/esm/features/store/objects/upload/useSmartFileUploadProcessing.js +15 -8
- package/lib/esm/features/store/objects/upload/useSmartFileUploadProcessing.js.map +1 -1
- package/lib/esm/features/store/types/ObjectSchemaEditor.js +6 -5
- package/lib/esm/features/store/types/ObjectSchemaEditor.js.map +1 -1
- package/lib/esm/features/store/types/SelectContentType.js +3 -3
- package/lib/esm/features/store/types/SelectContentType.js.map +1 -1
- package/lib/esm/features/store/types/SelectContentTypeModal.js +5 -4
- package/lib/esm/features/store/types/SelectContentTypeModal.js.map +1 -1
- package/lib/esm/features/store/types/TableLayoutEditor.js +4 -4
- package/lib/esm/features/store/types/TableLayoutEditor.js.map +1 -1
- package/lib/esm/features/user/UserInfo.js +73 -9
- package/lib/esm/features/user/UserInfo.js.map +1 -1
- package/lib/esm/features/utils/print.js +0 -1
- package/lib/esm/features/utils/print.js.map +1 -1
- package/lib/esm/layout/AppLayout.js +3 -4
- package/lib/esm/layout/AppLayout.js.map +1 -1
- package/lib/esm/layout/Sidebar.js +5 -5
- package/lib/esm/layout/Sidebar.js.map +1 -1
- package/lib/esm/router/HistoryNavigator.js +7 -1
- package/lib/esm/router/HistoryNavigator.js.map +1 -1
- package/lib/esm/router/Nav.js +2 -2
- package/lib/esm/router/Nav.js.map +1 -1
- package/lib/esm/session/UserSession.js +35 -9
- package/lib/esm/session/UserSession.js.map +1 -1
- package/lib/esm/session/UserSessionProvider.js +3 -2
- package/lib/esm/session/UserSessionProvider.js.map +1 -1
- package/lib/esm/shell/apps/AppProjectSelector.js +2 -2
- package/lib/esm/shell/apps/AppProjectSelector.js.map +1 -1
- package/lib/esm/shell/apps/StandaloneApp.js +2 -2
- package/lib/esm/shell/apps/StandaloneApp.js.map +1 -1
- package/lib/esm/shell/login/InviteAcceptModal.js +2 -2
- package/lib/esm/shell/login/InviteAcceptModal.js.map +1 -1
- package/lib/esm/shell/login/SignInModal.js +1 -1
- package/lib/esm/shell/login/SignInModal.js.map +1 -1
- package/lib/esm/shell/login/SignupForm.js +2 -2
- package/lib/esm/shell/login/SignupForm.js.map +1 -1
- package/lib/esm/shell/login/UserInfo.js +2 -2
- package/lib/esm/shell/login/UserInfo.js.map +1 -1
- package/lib/esm/widgets/json-view/JSONCode.js +1 -1
- package/lib/esm/widgets/json-view/JSONCode.js.map +1 -1
- package/lib/esm/widgets/json-view/JSONDisplay.js +1 -1
- package/lib/esm/widgets/json-view/JSONDisplay.js.map +1 -1
- package/lib/esm/widgets/markdown/ArtifactContentRenderer.js +84 -13
- package/lib/esm/widgets/markdown/ArtifactContentRenderer.js.map +1 -1
- package/lib/esm/widgets/markdown/MarkdownFigure.js +40 -0
- package/lib/esm/widgets/markdown/MarkdownFigure.js.map +1 -0
- package/lib/esm/widgets/markdown/MarkdownRenderer.js +42 -7
- package/lib/esm/widgets/markdown/MarkdownRenderer.js.map +1 -1
- package/lib/esm/widgets/markdown/MermaidDiagram.js +80 -5
- package/lib/esm/widgets/markdown/MermaidDiagram.js.map +1 -1
- package/lib/esm/widgets/markdown/codeBlockHandlers.js +33 -33
- package/lib/esm/widgets/markdown/codeBlockHandlers.js.map +1 -1
- package/lib/esm/widgets/markdown/codeBlockHandlers.test.js +2 -29
- package/lib/esm/widgets/markdown/codeBlockHandlers.test.js.map +1 -1
- package/lib/esm/widgets/markdown/index.js +1 -0
- package/lib/esm/widgets/markdown/index.js.map +1 -1
- package/lib/esm/widgets/markdown/normalizeCustomSchemeLinks.js +77 -0
- package/lib/esm/widgets/markdown/normalizeCustomSchemeLinks.js.map +1 -0
- package/lib/esm/widgets/markdown/normalizeDirectives.js +45 -0
- package/lib/esm/widgets/markdown/normalizeDirectives.js.map +1 -0
- package/lib/esm/widgets/markdown/remarkDirectiveHandler.js +96 -0
- package/lib/esm/widgets/markdown/remarkDirectiveHandler.js.map +1 -0
- package/lib/esm/widgets/monacoEditor/MonacoEditor.js +8 -14
- package/lib/esm/widgets/monacoEditor/MonacoEditor.js.map +1 -1
- package/lib/esm/widgets/schema-editor/ManagedSchema.js.map +1 -1
- package/lib/esm/widgets/schema-editor/editor/PropertyEditor.js +3 -3
- package/lib/esm/widgets/schema-editor/editor/PropertyEditor.js.map +1 -1
- package/lib/esm/widgets/schema-editor/json-schema4-utils.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/core/components/SidePanel.d.ts +4 -1
- package/lib/types/core/components/SidePanel.d.ts.map +1 -1
- package/lib/types/core/components/index.d.ts +0 -8
- package/lib/types/core/components/index.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/MessageBox.d.ts.map +1 -0
- package/lib/types/core/components/{Panel.d.ts → shadcn/Panel.d.ts} +3 -1
- package/lib/types/core/components/shadcn/Panel.d.ts.map +1 -0
- package/lib/types/core/components/{Badge.d.ts → shadcn/badge.d.ts} +4 -4
- package/lib/types/core/components/shadcn/badge.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/button.d.ts +1 -1
- package/lib/types/core/components/shadcn/filters/filterBar.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/index.d.ts +4 -2
- package/lib/types/core/components/shadcn/index.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/input.d.ts +1 -1
- package/lib/types/core/components/shadcn/modal/ConfirmModal.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/modal/DeleteModal.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/{dialog.d.ts → modal/dialog.d.ts} +7 -4
- package/lib/types/core/components/shadcn/modal/dialog.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/modal/index.d.ts +4 -0
- package/lib/types/core/components/shadcn/modal/index.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/popover.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/selectBox.d.ts +9 -5
- package/lib/types/core/components/shadcn/selectBox.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/tabs.d.ts +14 -5
- package/lib/types/core/components/shadcn/tabs.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/textarea.d.ts +6 -2
- package/lib/types/core/components/shadcn/textarea.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/tooltip.d.ts.map +1 -1
- package/lib/types/features/agent/PayloadBuilder.d.ts +22 -4
- package/lib/types/features/agent/PayloadBuilder.d.ts.map +1 -1
- package/lib/types/features/agent/chat/AgentChart.d.ts +3 -44
- package/lib/types/features/agent/chat/AgentChart.d.ts.map +1 -1
- package/lib/types/features/agent/chat/AskUserWidget.d.ts.map +1 -1
- package/lib/types/features/agent/chat/DocumentPanel.d.ts +16 -0
- package/lib/types/features/agent/chat/DocumentPanel.d.ts.map +1 -0
- package/lib/types/features/agent/chat/DocumentTabBar.d.ts +10 -0
- package/lib/types/features/agent/chat/DocumentTabBar.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentConversation.d.ts +69 -1
- package/lib/types/features/agent/chat/ModernAgentConversation.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts +36 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/BatchProgressPanel.d.ts +18 -2
- package/lib/types/features/agent/chat/ModernAgentOutput/BatchProgressPanel.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts +4 -7
- package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/MessageInput.d.ts +2 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/MessageInput.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/MessageItem.d.ts +35 -7
- package/lib/types/features/agent/chat/ModernAgentOutput/MessageItem.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/StreamingMessage.d.ts +11 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/StreamingMessage.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/ToolCallGroup.d.ts +20 -2
- package/lib/types/features/agent/chat/ModernAgentOutput/ToolCallGroup.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/WorkstreamTabs.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/utils.d.ts +18 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/utils.d.ts.map +1 -1
- package/lib/types/features/agent/chat/SkillWidgetProvider.d.ts.map +1 -1
- package/lib/types/features/agent/chat/hooks/useAgentPlans.d.ts +22 -0
- package/lib/types/features/agent/chat/hooks/useAgentPlans.d.ts.map +1 -0
- package/lib/types/features/agent/chat/hooks/useAgentStream.d.ts +42 -0
- package/lib/types/features/agent/chat/hooks/useAgentStream.d.ts.map +1 -0
- package/lib/types/features/agent/chat/hooks/useDocumentPanel.d.ts +22 -0
- package/lib/types/features/agent/chat/hooks/useDocumentPanel.d.ts.map +1 -0
- package/lib/types/features/agent/chat/hooks/useFileProcessing.d.ts +27 -0
- package/lib/types/features/agent/chat/hooks/useFileProcessing.d.ts.map +1 -0
- package/lib/types/features/agent/chat/index.d.ts +12 -8
- package/lib/types/features/agent/chat/index.d.ts.map +1 -1
- package/lib/types/features/agent/chat/types/document.d.ts +5 -0
- package/lib/types/features/agent/chat/types/document.d.ts.map +1 -0
- package/lib/types/features/agent/index.d.ts +0 -2
- package/lib/types/features/agent/index.d.ts.map +1 -1
- package/lib/types/features/store/collections/BrowseCollectionView.d.ts.map +1 -1
- package/lib/types/features/store/objects/ExportPropertiesModal.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/ContentOverview.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/PropertiesEditorModal.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/index.d.ts +1 -1
- package/lib/types/features/store/objects/components/index.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/useDownloadFile.d.ts +35 -0
- package/lib/types/features/store/objects/components/useDownloadFile.d.ts.map +1 -0
- package/lib/types/features/store/objects/search/DocumentSearchContext.d.ts.map +1 -1
- package/lib/types/features/store/objects/selection/SelectionActions.d.ts +1 -1
- package/lib/types/features/store/objects/selection/SelectionActions.d.ts.map +1 -1
- package/lib/types/features/store/objects/selection/actions/ChangeTypeAction.d.ts.map +1 -1
- package/lib/types/features/store/objects/selection/actions/ExportPropertiesAction.d.ts.map +1 -1
- package/lib/types/features/store/objects/upload/useSmartFileUploadProcessing.d.ts.map +1 -1
- package/lib/types/features/store/types/ObjectSchemaEditor.d.ts +2 -1
- package/lib/types/features/store/types/ObjectSchemaEditor.d.ts.map +1 -1
- package/lib/types/features/store/types/SelectContentTypeModal.d.ts +1 -1
- package/lib/types/features/store/types/SelectContentTypeModal.d.ts.map +1 -1
- package/lib/types/features/store/types/TableLayoutEditor.d.ts +2 -1
- package/lib/types/features/store/types/TableLayoutEditor.d.ts.map +1 -1
- package/lib/types/features/user/UserInfo.d.ts +12 -1
- package/lib/types/features/user/UserInfo.d.ts.map +1 -1
- package/lib/types/features/utils/print.d.ts.map +1 -1
- package/lib/types/layout/AppLayout.d.ts.map +1 -1
- package/lib/types/layout/Sidebar.d.ts +4 -2
- package/lib/types/layout/Sidebar.d.ts.map +1 -1
- package/lib/types/router/HistoryNavigator.d.ts.map +1 -1
- package/lib/types/router/Nav.d.ts +6 -1
- package/lib/types/router/Nav.d.ts.map +1 -1
- package/lib/types/session/UserSession.d.ts.map +1 -1
- package/lib/types/session/UserSessionProvider.d.ts +1 -0
- package/lib/types/session/UserSessionProvider.d.ts.map +1 -1
- package/lib/types/widgets/json-view/JSONCode.d.ts.map +1 -1
- package/lib/types/widgets/markdown/ArtifactContentRenderer.d.ts +10 -1
- package/lib/types/widgets/markdown/ArtifactContentRenderer.d.ts.map +1 -1
- package/lib/types/widgets/markdown/MarkdownFigure.d.ts +15 -0
- package/lib/types/widgets/markdown/MarkdownFigure.d.ts.map +1 -0
- package/lib/types/widgets/markdown/MarkdownRenderer.d.ts.map +1 -1
- package/lib/types/widgets/markdown/MermaidDiagram.d.ts.map +1 -1
- package/lib/types/widgets/markdown/codeBlockHandlers.d.ts +5 -2
- package/lib/types/widgets/markdown/codeBlockHandlers.d.ts.map +1 -1
- package/lib/types/widgets/markdown/index.d.ts +1 -0
- package/lib/types/widgets/markdown/index.d.ts.map +1 -1
- package/lib/types/widgets/markdown/normalizeCustomSchemeLinks.d.ts +9 -0
- package/lib/types/widgets/markdown/normalizeCustomSchemeLinks.d.ts.map +1 -0
- package/lib/types/widgets/markdown/normalizeDirectives.d.ts +20 -0
- package/lib/types/widgets/markdown/normalizeDirectives.d.ts.map +1 -0
- package/lib/types/widgets/markdown/remarkDirectiveHandler.d.ts +2 -0
- package/lib/types/widgets/markdown/remarkDirectiveHandler.d.ts.map +1 -0
- package/lib/types/widgets/monacoEditor/MonacoEditor.d.ts +1 -3
- package/lib/types/widgets/monacoEditor/MonacoEditor.d.ts.map +1 -1
- package/lib/types/widgets/schema-editor/ManagedSchema.d.ts +1 -1
- package/lib/types/widgets/schema-editor/ManagedSchema.d.ts.map +1 -1
- package/lib/vertesia-ui-core.js +1 -1
- package/lib/vertesia-ui-core.js.map +1 -1
- package/lib/vertesia-ui-features.js +1 -1
- package/lib/vertesia-ui-features.js.map +1 -1
- package/lib/vertesia-ui-layout.js +1 -1
- package/lib/vertesia-ui-layout.js.map +1 -1
- package/lib/vertesia-ui-router.js +1 -1
- package/lib/vertesia-ui-router.js.map +1 -1
- package/lib/vertesia-ui-session.js +1 -1
- package/lib/vertesia-ui-session.js.map +1 -1
- package/lib/vertesia-ui-shell.js +1 -1
- package/lib/vertesia-ui-shell.js.map +1 -1
- package/lib/vertesia-ui-widgets.js +1 -1
- package/lib/vertesia-ui-widgets.js.map +1 -1
- package/package.json +14 -10
- package/src/core/components/InputList.tsx +1 -1
- package/src/core/components/Overlay.tsx +1 -1
- package/src/core/components/SidePanel.tsx +29 -15
- package/src/core/components/Switch.tsx +1 -1
- package/src/core/components/index.ts +0 -8
- package/src/core/components/shadcn/Panel.tsx +50 -0
- package/src/core/components/{Badge.tsx → shadcn/badge.tsx} +3 -3
- package/src/core/components/shadcn/command.tsx +1 -1
- package/src/core/components/shadcn/filters/filterBar.tsx +76 -87
- package/src/core/components/shadcn/index.ts +5 -3
- package/src/core/components/{ConfirmModal.tsx → shadcn/modal/ConfirmModal.tsx} +8 -8
- package/src/core/components/{DeleteModal.tsx → shadcn/modal/DeleteModal.tsx} +1 -1
- package/src/core/components/shadcn/{dialog.tsx → modal/dialog.tsx} +43 -32
- package/src/core/components/shadcn/modal/index.ts +3 -0
- package/src/core/components/shadcn/popover.tsx +4 -2
- package/src/core/components/shadcn/selectBox.tsx +71 -52
- package/src/core/components/shadcn/tabs.tsx +36 -19
- package/src/core/components/shadcn/textarea.tsx +43 -2
- package/src/core/components/shadcn/tooltip.tsx +23 -17
- package/src/features/agent/PayloadBuilder.tsx +70 -9
- package/src/features/agent/chat/AgentChart.tsx +46 -678
- package/src/features/agent/chat/AskUserWidget.tsx +4 -3
- package/src/features/agent/chat/DocumentPanel.tsx +120 -0
- package/src/features/agent/chat/DocumentTabBar.tsx +49 -0
- package/src/features/agent/chat/ModernAgentConversation.tsx +403 -549
- package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.tsx +162 -55
- package/src/features/agent/chat/ModernAgentOutput/BatchProgressPanel.tsx +40 -10
- package/src/features/agent/chat/ModernAgentOutput/Header.tsx +12 -16
- package/src/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.tsx +3 -3
- package/src/features/agent/chat/ModernAgentOutput/MessageInput.tsx +68 -75
- package/src/features/agent/chat/ModernAgentOutput/MessageItem.tsx +206 -94
- package/src/features/agent/chat/ModernAgentOutput/StreamingMessage.tsx +22 -5
- package/src/features/agent/chat/ModernAgentOutput/ToolCallGroup.tsx +295 -113
- package/src/features/agent/chat/ModernAgentOutput/WorkstreamTabs.tsx +11 -8
- package/src/features/agent/chat/ModernAgentOutput/utils.ts +133 -4
- package/src/features/agent/chat/SkillWidgetProvider.tsx +32 -15
- package/src/features/agent/chat/hooks/useAgentPlans.ts +190 -0
- package/src/features/agent/chat/hooks/useAgentStream.ts +239 -0
- package/src/features/agent/chat/hooks/useDocumentPanel.ts +118 -0
- package/src/features/agent/chat/hooks/useFileProcessing.ts +126 -0
- package/src/features/agent/chat/index.ts +18 -17
- package/src/features/agent/chat/types/document.ts +4 -0
- package/src/features/agent/index.ts +0 -2
- package/src/features/store/collections/BrowseCollectionView.tsx +5 -8
- package/src/features/store/collections/CreateCollection.tsx +8 -8
- package/src/features/store/collections/EditCollectionView.tsx +1 -1
- package/src/features/store/objects/DocumentSearchResults.tsx +9 -13
- package/src/features/store/objects/ExportPropertiesModal.tsx +9 -7
- package/src/features/store/objects/components/ContentOverview.tsx +29 -155
- package/src/features/store/objects/components/PropertiesEditorModal.tsx +0 -1
- package/src/features/store/objects/components/SelectDocumentModal.tsx +6 -6
- package/src/features/store/objects/components/VectorSearchWidget.tsx +2 -2
- package/src/features/store/objects/components/index.ts +1 -1
- package/src/features/store/objects/components/useDownloadFile.ts +237 -0
- package/src/features/store/objects/search/DocumentSearchContext.ts +1 -2
- package/src/features/store/objects/selection/SelectionActions.tsx +0 -4
- package/src/features/store/objects/selection/actions/AddToCollectionAction.tsx +13 -13
- package/src/features/store/objects/selection/actions/ChangeTypeAction.tsx +2 -6
- package/src/features/store/objects/selection/actions/ExportPropertiesAction.tsx +1 -3
- package/src/features/store/objects/selection/actions/StartWorkflowComponent.tsx +8 -8
- package/src/features/store/objects/upload/DocumentUploadModal.tsx +25 -25
- package/src/features/store/objects/upload/useSmartFileUploadProcessing.ts +16 -10
- package/src/features/store/types/ObjectSchemaEditor.tsx +32 -29
- package/src/features/store/types/SelectContentType.tsx +3 -3
- package/src/features/store/types/SelectContentTypeModal.tsx +17 -30
- package/src/features/store/types/TableLayoutEditor.tsx +14 -18
- package/src/features/user/UserInfo.tsx +176 -10
- package/src/features/utils/print.ts +0 -1
- package/src/layout/AppLayout.tsx +16 -44
- package/src/layout/Sidebar.tsx +7 -5
- package/src/router/HistoryNavigator.ts +9 -1
- package/src/router/Nav.tsx +7 -2
- package/src/session/UserSession.ts +38 -9
- package/src/session/UserSessionProvider.tsx +3 -2
- package/src/shell/apps/AppProjectSelector.tsx +2 -2
- package/src/shell/apps/StandaloneApp.tsx +3 -3
- package/src/shell/login/InviteAcceptModal.tsx +6 -6
- package/src/shell/login/SignInModal.tsx +1 -1
- package/src/shell/login/SignupForm.tsx +3 -3
- package/src/shell/login/UserInfo.tsx +5 -5
- package/src/widgets/json-view/JSONCode.tsx +1 -3
- package/src/widgets/json-view/JSONDisplay.tsx +1 -1
- package/src/widgets/markdown/ArtifactContentRenderer.tsx +115 -14
- package/src/widgets/markdown/MarkdownFigure.tsx +100 -0
- package/src/widgets/markdown/MarkdownRenderer.tsx +62 -9
- package/src/widgets/markdown/MermaidDiagram.tsx +97 -5
- package/src/widgets/markdown/codeBlockHandlers.test.tsx +3 -34
- package/src/widgets/markdown/codeBlockHandlers.tsx +47 -42
- package/src/widgets/markdown/index.ts +1 -0
- package/src/widgets/markdown/markdown.css +192 -0
- package/src/widgets/markdown/normalizeCustomSchemeLinks.test.ts +86 -0
- package/src/widgets/markdown/normalizeCustomSchemeLinks.ts +91 -0
- package/src/widgets/markdown/normalizeDirectives.ts +50 -0
- package/src/widgets/markdown/remarkDirectiveHandler.ts +119 -0
- package/src/widgets/monacoEditor/MonacoEditor.tsx +8 -22
- package/src/widgets/schema-editor/ManagedSchema.ts +1 -1
- package/src/widgets/schema-editor/editor/PropertyEditor.tsx +5 -5
- package/src/widgets/schema-editor/json-schema4-utils.ts +1 -1
- package/lib/esm/core/components/Badge.js.map +0 -1
- package/lib/esm/core/components/Button.js +0 -32
- package/lib/esm/core/components/Button.js.map +0 -1
- package/lib/esm/core/components/ConfirmModal.js +0 -10
- package/lib/esm/core/components/ConfirmModal.js.map +0 -1
- package/lib/esm/core/components/DeleteModal.js.map +0 -1
- package/lib/esm/core/components/MessageBox.js.map +0 -1
- package/lib/esm/core/components/Modal.js +0 -26
- package/lib/esm/core/components/Modal.js.map +0 -1
- package/lib/esm/core/components/Panel.js +0 -8
- package/lib/esm/core/components/Panel.js.map +0 -1
- package/lib/esm/core/components/SelectBox.js +0 -67
- package/lib/esm/core/components/SelectBox.js.map +0 -1
- package/lib/esm/core/components/shadcn/dialog.js.map +0 -1
- package/lib/esm/core/components/tabs/Tabs.js +0 -78
- package/lib/esm/core/components/tabs/Tabs.js.map +0 -1
- package/lib/esm/core/components/tabs/TabsContext.js +0 -7
- package/lib/esm/core/components/tabs/TabsContext.js.map +0 -1
- package/lib/esm/core/components/tabs/index.js +0 -3
- package/lib/esm/core/components/tabs/index.js.map +0 -1
- package/lib/esm/features/agent/createChartTool.js +0 -632
- package/lib/esm/features/agent/createChartTool.js.map +0 -1
- package/lib/esm/features/agent/examples.js +0 -295
- package/lib/esm/features/agent/examples.js.map +0 -1
- package/lib/esm/features/agent/visualization.js +0 -165
- package/lib/esm/features/agent/visualization.js.map +0 -1
- package/lib/esm/features/store/objects/components/useDownloadObject.js +0 -21
- package/lib/esm/features/store/objects/components/useDownloadObject.js.map +0 -1
- package/lib/types/core/components/Badge.d.ts.map +0 -1
- package/lib/types/core/components/Button.d.ts +0 -14
- package/lib/types/core/components/Button.d.ts.map +0 -1
- package/lib/types/core/components/ConfirmModal.d.ts.map +0 -1
- package/lib/types/core/components/DeleteModal.d.ts.map +0 -1
- package/lib/types/core/components/MessageBox.d.ts.map +0 -1
- package/lib/types/core/components/Modal.d.ts +0 -30
- package/lib/types/core/components/Modal.d.ts.map +0 -1
- package/lib/types/core/components/Panel.d.ts.map +0 -1
- package/lib/types/core/components/SelectBox.d.ts +0 -36
- package/lib/types/core/components/SelectBox.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/dialog.d.ts.map +0 -1
- package/lib/types/core/components/tabs/Tabs.d.ts +0 -25
- package/lib/types/core/components/tabs/Tabs.d.ts.map +0 -1
- package/lib/types/core/components/tabs/TabsContext.d.ts +0 -17
- package/lib/types/core/components/tabs/TabsContext.d.ts.map +0 -1
- package/lib/types/core/components/tabs/index.d.ts +0 -3
- package/lib/types/core/components/tabs/index.d.ts.map +0 -1
- package/lib/types/features/agent/createChartTool.d.ts +0 -178
- package/lib/types/features/agent/createChartTool.d.ts.map +0 -1
- package/lib/types/features/agent/examples.d.ts +0 -59
- package/lib/types/features/agent/examples.d.ts.map +0 -1
- package/lib/types/features/agent/visualization.d.ts +0 -95
- package/lib/types/features/agent/visualization.d.ts.map +0 -1
- package/lib/types/features/store/objects/components/useDownloadObject.d.ts +0 -4
- package/lib/types/features/store/objects/components/useDownloadObject.d.ts.map +0 -1
- package/src/core/components/Button.tsx +0 -63
- package/src/core/components/Modal.tsx +0 -144
- package/src/core/components/Panel.tsx +0 -34
- package/src/core/components/SelectBox.tsx +0 -188
- package/src/core/components/tabs/Tabs.tsx +0 -132
- package/src/core/components/tabs/TabsContext.ts +0 -25
- package/src/core/components/tabs/index.ts +0 -2
- package/src/features/agent/CHART_INSTRUCTIONS.md +0 -228
- package/src/features/agent/createChartTool.ts +0 -643
- package/src/features/agent/examples.ts +0 -321
- package/src/features/agent/visualization.ts +0 -227
- package/src/features/store/objects/components/useDownloadObject.ts +0 -29
- /package/lib/esm/core/components/{MessageBox.js → shadcn/MessageBox.js} +0 -0
- /package/lib/types/core/components/{MessageBox.d.ts → shadcn/MessageBox.d.ts} +0 -0
- /package/lib/types/core/components/{ConfirmModal.d.ts → shadcn/modal/ConfirmModal.d.ts} +0 -0
- /package/lib/types/core/components/{DeleteModal.d.ts → shadcn/modal/DeleteModal.d.ts} +0 -0
- /package/src/core/components/{MessageBox.tsx → shadcn/MessageBox.tsx} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vertesia/ui",
|
|
3
|
-
"version": "1.0.0-dev.
|
|
3
|
+
"version": "1.0.0-dev.20260225.024852Z",
|
|
4
4
|
"description": "Vertesia UI components and and hooks",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -39,12 +39,12 @@
|
|
|
39
39
|
"cmdk": "^1.1.1",
|
|
40
40
|
"dayjs": "^1.11.19",
|
|
41
41
|
"debounce": "^2.2.0",
|
|
42
|
-
"
|
|
42
|
+
"dompurify": "^3.3.1",
|
|
43
|
+
"fast-xml-parser": "^5.3.6",
|
|
43
44
|
"firebase": "^10.12.2",
|
|
44
45
|
"framer-motion": "^12.23.12",
|
|
45
|
-
"html-to-image": "^1.11.13",
|
|
46
|
-
"json-schema": "^0.4.0",
|
|
47
46
|
"jwt-decode": "^4.0.0",
|
|
47
|
+
"katex": "^0.16.28",
|
|
48
48
|
"lodash-es": "^4.17.23",
|
|
49
49
|
"lucide-react": "^0.562.0",
|
|
50
50
|
"mermaid": "^11.4.0",
|
|
@@ -60,18 +60,23 @@
|
|
|
60
60
|
"react-pdf": "^10.2.0",
|
|
61
61
|
"react-resizable-panels": "^3.0.6",
|
|
62
62
|
"react-vega": "^8.0.0",
|
|
63
|
-
"
|
|
63
|
+
"rehype-katex": "^7.0.1",
|
|
64
|
+
"remark-definition-list": "^2.0.0",
|
|
65
|
+
"remark-directive": "^4.0.0",
|
|
64
66
|
"remark-gfm": "^4.0.1",
|
|
67
|
+
"remark-github-blockquote-alert": "^2.0.0",
|
|
68
|
+
"remark-math": "^6.0.0",
|
|
69
|
+
"remark-supersub": "^1.0.0",
|
|
65
70
|
"tailwind-merge": "^3.4.0",
|
|
66
71
|
"ts-md5": "^1.3.1",
|
|
67
72
|
"unist-util-visit": "^5.0.0",
|
|
68
73
|
"vega": "^6.2.0",
|
|
69
74
|
"vega-embed": "^7.1.0",
|
|
70
75
|
"vega-lite": "^6.4.1",
|
|
71
|
-
"@vertesia/
|
|
72
|
-
"@vertesia/
|
|
73
|
-
"@vertesia/json": "1.0.0-dev.
|
|
74
|
-
"@vertesia/
|
|
76
|
+
"@vertesia/fusion-ux": "1.0.0-dev.20260225.024852Z",
|
|
77
|
+
"@vertesia/client": "1.0.0-dev.20260225.024852Z",
|
|
78
|
+
"@vertesia/json": "1.0.0-dev.20260225.024852Z",
|
|
79
|
+
"@vertesia/common": "1.0.0-dev.20260225.024852Z"
|
|
75
80
|
},
|
|
76
81
|
"devDependencies": {
|
|
77
82
|
"@eslint/js": "^9.27.0",
|
|
@@ -79,7 +84,6 @@
|
|
|
79
84
|
"@rollup/plugin-json": "^6.1.0",
|
|
80
85
|
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
81
86
|
"@types/hast": "^3.0.4",
|
|
82
|
-
"@types/json-schema": "^7.0.15",
|
|
83
87
|
"@types/lodash-es": "^4.17.12",
|
|
84
88
|
"@types/node": "^22.19.2",
|
|
85
89
|
"@types/papaparse": "^5.5.2",
|
|
@@ -10,8 +10,11 @@ interface SidePanelProps {
|
|
|
10
10
|
title?: string;
|
|
11
11
|
panelWidth?: number;
|
|
12
12
|
backdrop?: boolean;
|
|
13
|
+
side?: 'left' | 'right';
|
|
14
|
+
resizable?: boolean;
|
|
15
|
+
className?: string;
|
|
13
16
|
}
|
|
14
|
-
export function SidePanel({ isOpen, title, onClose, children, panelWidth = 768, backdrop = false }: SidePanelProps) {
|
|
17
|
+
export function SidePanel({ isOpen, title, onClose, children, panelWidth = 768, backdrop = false, side = 'right', resizable = true, className }: SidePanelProps) {
|
|
15
18
|
const [_panelWidth, setPanelWidth] = useState(panelWidth);
|
|
16
19
|
|
|
17
20
|
const handleDragStart = (e: React.MouseEvent) => {
|
|
@@ -39,6 +42,13 @@ export function SidePanel({ isOpen, title, onClose, children, panelWidth = 768,
|
|
|
39
42
|
document.addEventListener('mouseup', handleMouseUp);
|
|
40
43
|
};
|
|
41
44
|
|
|
45
|
+
const isLeft = side === 'left';
|
|
46
|
+
const positionClass = isLeft ? 'left-0' : 'right-0';
|
|
47
|
+
const paddingClass = isLeft ? 'pr-10 sm:pr-16' : 'pl-10 sm:pl-16';
|
|
48
|
+
const borderClass = isLeft ? 'border-r' : 'border-l';
|
|
49
|
+
const dragHandleClass = isLeft ? '-right-1' : '-left-1';
|
|
50
|
+
const initialX = isLeft ? "-100%" : "100%";
|
|
51
|
+
|
|
42
52
|
return (
|
|
43
53
|
<AnimatePresence>
|
|
44
54
|
{isOpen && (
|
|
@@ -54,28 +64,31 @@ export function SidePanel({ isOpen, title, onClose, children, panelWidth = 768,
|
|
|
54
64
|
/>
|
|
55
65
|
)}
|
|
56
66
|
|
|
57
|
-
<div className=
|
|
67
|
+
<div className={`fixed inset-y-0 ${positionClass} overflow-hidden`}>
|
|
58
68
|
<div className="absolute inset-0 overflow-hidden">
|
|
59
|
-
<div className=
|
|
69
|
+
<div className={`pointer-events-none fixed inset-y-0 ${positionClass} flex max-w-full ${paddingClass}`}>
|
|
60
70
|
<motion.div
|
|
61
|
-
className=
|
|
71
|
+
className={`pointer-events-auto ${borderClass}`}
|
|
62
72
|
style={{ width: `${_panelWidth}px` }}
|
|
63
|
-
initial={{ x:
|
|
73
|
+
initial={{ x: initialX }}
|
|
64
74
|
animate={{ x: 0 }}
|
|
65
|
-
exit={{ x:
|
|
75
|
+
exit={{ x: initialX }}
|
|
66
76
|
transition={{ type: "spring", stiffness: 300, damping: 30 }}
|
|
67
77
|
>
|
|
68
78
|
<div className="relative flex h-full">
|
|
69
79
|
{/* Drag Handle */}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
80
|
+
{resizable && (
|
|
81
|
+
<div
|
|
82
|
+
className={`absolute ${dragHandleClass} top-0 bottom-0 w-3 cursor-ew-resize hover:bg-indigo-500 transition-colors flex items-center justify-center`}
|
|
83
|
+
onMouseDown={handleDragStart}
|
|
84
|
+
>
|
|
85
|
+
<Minus className="rotate-90 font-semibold" strokeWidth={4} />
|
|
86
|
+
</div>
|
|
87
|
+
)}
|
|
88
|
+
<div className={`flex-1 flex flex-col bg-background shadow-xl ${className}`}>
|
|
89
|
+
{/* Sticky header */}
|
|
77
90
|
{title && (
|
|
78
|
-
<div className="px-2 sm:px-4">
|
|
91
|
+
<div className="sticky top-0 z-10 bg-background px-2 sm:px-4 py-2 border-b">
|
|
79
92
|
<div className="flex items-start justify-between">
|
|
80
93
|
<h2 className="w-full text-base font-semibold leading-6">
|
|
81
94
|
<div className="text-2xl">{title ?? ""}</div>
|
|
@@ -87,7 +100,8 @@ export function SidePanel({ isOpen, title, onClose, children, panelWidth = 768,
|
|
|
87
100
|
</div>
|
|
88
101
|
)}
|
|
89
102
|
|
|
90
|
-
|
|
103
|
+
{/* Scrollable content */}
|
|
104
|
+
<div className="flex-1 overflow-y-auto px-2 sm:px-4 py-4">
|
|
91
105
|
{children}
|
|
92
106
|
</div>
|
|
93
107
|
</div>
|
|
@@ -17,7 +17,7 @@ interface SwitchProps {
|
|
|
17
17
|
export function Switch({ value, onChange, size = 'md', children, className, disabled }: SwitchProps) {
|
|
18
18
|
const sizeClass = sizes[size];
|
|
19
19
|
return (
|
|
20
|
-
<UISwitch checked={value} onChange={() => onChange(!value)} className={`flex items-center ${className} ${disabled ? 'cursor-not-allowed opacity-50' : 'hover:cursor-pointer'}`}>
|
|
20
|
+
<UISwitch checked={value} onChange={() => onChange(!value)} disabled={disabled} className={`flex items-center ${className} ${disabled ? 'cursor-not-allowed opacity-50' : 'hover:cursor-pointer'}`}>
|
|
21
21
|
<div className={`${value ? 'bg-primary' : 'bg-muted/50'} relative inline-flex ${sizeClass[0]} items-center rounded-full border-1`}>
|
|
22
22
|
<span
|
|
23
23
|
className={`${value ? sizeClass[2] : 'translate-x-1'
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
export * from "./Avatar.js";
|
|
3
|
-
export * from "./Badge.js";
|
|
4
3
|
export * from "./Center.js";
|
|
5
4
|
export * from "./ComboBox.js";
|
|
6
|
-
export * from "./ConfirmModal.js";
|
|
7
|
-
export * from "./DeleteModal.js";
|
|
8
5
|
export * from "./Divider.js";
|
|
9
6
|
export * from "./Dropdown.js";
|
|
10
7
|
export * from "./DropdownList.js";
|
|
@@ -14,15 +11,11 @@ export * from "./FormItem.js";
|
|
|
14
11
|
export * from "./InputList.js";
|
|
15
12
|
export * from "./Link.js";
|
|
16
13
|
export * from "./MenuList.js";
|
|
17
|
-
export * from "./MessageBox.js";
|
|
18
|
-
export * from "./Modal.js";
|
|
19
14
|
export * from "./NumberInput.js";
|
|
20
15
|
export * from "./Overlay.js";
|
|
21
|
-
export * from "./Panel.js";
|
|
22
16
|
export * from "./popup/index.js";
|
|
23
17
|
export * from "./Portal.js";
|
|
24
18
|
export * from "./RadioGroup.js";
|
|
25
|
-
export * from "./SelectBox.js";
|
|
26
19
|
export * from "./SelectList.js";
|
|
27
20
|
export * from "./SelectStack.js";
|
|
28
21
|
export * from "./shadcn/index.js";
|
|
@@ -31,7 +24,6 @@ export * from "./Spinner.js";
|
|
|
31
24
|
export * from "./styles.js";
|
|
32
25
|
export * from "./Switch.js";
|
|
33
26
|
export * from "./table/index.js";
|
|
34
|
-
export * from "./tabs/index.js";
|
|
35
27
|
export * from "./TagsInput.js";
|
|
36
28
|
export * from "./toast/index.js";
|
|
37
29
|
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { useState } from "react"
|
|
2
|
+
import { VTooltip } from "./tooltip"
|
|
3
|
+
import { ChevronDown, ChevronUp, Info } from "lucide-react"
|
|
4
|
+
import { Button } from "./button"
|
|
5
|
+
|
|
6
|
+
interface PanelProps {
|
|
7
|
+
title: string | React.ReactNode
|
|
8
|
+
description?: React.ReactNode
|
|
9
|
+
action?: React.ReactNode
|
|
10
|
+
children: React.ReactNode
|
|
11
|
+
footer?: string | React.ReactNode
|
|
12
|
+
className?: string
|
|
13
|
+
collapsible?: boolean
|
|
14
|
+
defaultCollapsed?: boolean
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function Panel({ children, action, title, description, footer, className, collapsible, defaultCollapsed = false }: PanelProps) {
|
|
18
|
+
const [isCollapsed, setIsCollapsed] = useState(defaultCollapsed);
|
|
19
|
+
|
|
20
|
+
return (
|
|
21
|
+
<div className={`p-4 flex flex-col gap-2 rounded-sm border bg-card ${className}`}>
|
|
22
|
+
<div className="flex items-center justify-between">
|
|
23
|
+
<div className="flex items-center gap-2">
|
|
24
|
+
<div className="font-semibold text-lg">
|
|
25
|
+
{title}
|
|
26
|
+
</div>
|
|
27
|
+
{description && <VTooltip description={description}><Info className="size-4 text-muted" /></VTooltip>}
|
|
28
|
+
</div>
|
|
29
|
+
<div className="flex gap-2 items-center">
|
|
30
|
+
{action}
|
|
31
|
+
{
|
|
32
|
+
collapsible && (
|
|
33
|
+
<Button variant="ghost" size="icon" onClick={() => setIsCollapsed(!isCollapsed)}>
|
|
34
|
+
{isCollapsed ?
|
|
35
|
+
<ChevronDown className="size-4" /> :
|
|
36
|
+
<ChevronUp className="size-4" />
|
|
37
|
+
}
|
|
38
|
+
</Button>
|
|
39
|
+
)
|
|
40
|
+
}
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
{!isCollapsed && children}
|
|
44
|
+
{footer &&
|
|
45
|
+
<div className="border-t border-muted flex flex-col-2 text-sm pt-4">
|
|
46
|
+
{footer}
|
|
47
|
+
</div>}
|
|
48
|
+
</div>
|
|
49
|
+
)
|
|
50
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import { cn } from "
|
|
1
|
+
import * as React from "react"
|
|
2
|
+
import { cva, type VariantProps } from "class-variance-authority"
|
|
3
|
+
import { cn } from "../libs/utils"
|
|
4
4
|
|
|
5
5
|
// Base badge variants
|
|
6
6
|
const badgeVariants = cva(
|
|
@@ -4,7 +4,7 @@ import { Command as CommandPrimitive } from "cmdk"
|
|
|
4
4
|
import { Search } from "lucide-react"
|
|
5
5
|
|
|
6
6
|
import { cn } from "../libs/utils"
|
|
7
|
-
import { Dialog, DialogContent } from "./dialog"
|
|
7
|
+
import { Dialog, DialogContent } from "./modal/dialog"
|
|
8
8
|
|
|
9
9
|
const Command: React.ForwardRefExoticComponent<
|
|
10
10
|
React.RefAttributes<HTMLDivElement> &
|
|
@@ -26,36 +26,38 @@ interface FilterProviderProps {
|
|
|
26
26
|
children: React.ReactNode;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
// Syncs filters ↔ URL. On mount, captures the initial URL param and restores matching filters
|
|
30
|
+
// incrementally as filterGroups loads. URL writes are blocked until the first filterGroups load
|
|
31
|
+
// so the address bar doesn't flicker. Filters not matching any filterGroup are silently dropped
|
|
32
|
+
// (prevents cross-page URL contamination, e.g. a modal inheriting a parent page's filters).
|
|
33
|
+
|
|
34
|
+
// Parse format with array indicators: filterName:value or filterName:[value1,value2]
|
|
29
35
|
const FilterProvider = ({ filters, setFilters, filterGroups, children }: FilterProviderProps) => {
|
|
30
36
|
const url = new URL(window.location.href);
|
|
31
37
|
const searchParams = url.searchParams;
|
|
32
|
-
const [
|
|
38
|
+
const [initialFiltersParam] = React.useState(() => new URLSearchParams(window.location.search).get('filters'));
|
|
39
|
+
const processedUrlFilters = React.useRef<Set<string>>(new Set());
|
|
40
|
+
const hasRestoredFromUrl = React.useRef(!initialFiltersParam);
|
|
33
41
|
|
|
34
42
|
useEffect(() => {
|
|
43
|
+
if (!hasRestoredFromUrl.current) return;
|
|
35
44
|
try {
|
|
36
45
|
const params = new URLSearchParams(searchParams.toString());
|
|
37
46
|
if (filters.length > 0) {
|
|
38
|
-
// Convert filters to format with array indicators: filterName:value,value;filterName2:value
|
|
39
|
-
// Arrays are prefixed with []: filterName:[value1,value2]
|
|
40
47
|
const filterString = filters.map(filter => {
|
|
41
48
|
let values;
|
|
42
49
|
if (filter.type === 'stringList' && Array.isArray(filter.value) && typeof filter.value[0] === 'string') {
|
|
43
|
-
// Handle stringList with direct string array - always array format
|
|
44
50
|
values = `[${(filter.value as string[]).map(item => encodeURIComponent(item)).join(',')}]`;
|
|
45
51
|
} else if (Array.isArray(filter.value)) {
|
|
46
52
|
if (filter.multiple) {
|
|
47
|
-
// Handle multiple filters - always use array format for multiple=true
|
|
48
53
|
values = `[${filter.value.map((item: any) => encodeURIComponent(item.value || item || '')).join(',')}]`;
|
|
49
54
|
} else if (filter.value.length > 1) {
|
|
50
|
-
// Handle multiple values for non-multiple filters
|
|
51
55
|
values = `[${filter.value.map((item: any) => encodeURIComponent(item.value || item || '')).join(',')}]`;
|
|
52
56
|
} else {
|
|
53
|
-
// Single value in array for non-multiple filter - don't use array format
|
|
54
57
|
const firstValue = filter.value[0];
|
|
55
58
|
if (typeof firstValue === 'string') {
|
|
56
59
|
values = encodeURIComponent(firstValue);
|
|
57
60
|
} else if (typeof firstValue === 'object' && firstValue?.value !== undefined) {
|
|
58
|
-
// Handle FilterOption object
|
|
59
61
|
values = encodeURIComponent(String(firstValue.value));
|
|
60
62
|
} else {
|
|
61
63
|
values = encodeURIComponent(String(firstValue || ''));
|
|
@@ -79,91 +81,78 @@ const FilterProvider = ({ filters, setFilters, filterGroups, children }: FilterP
|
|
|
79
81
|
}, [filters]);
|
|
80
82
|
|
|
81
83
|
useEffect(() => {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
84
|
+
if (!initialFiltersParam || filterGroups.length === 0) return;
|
|
85
|
+
try {
|
|
86
|
+
const filterPairs = initialFiltersParam.split(';');
|
|
87
|
+
const newFilters: Filter[] = [];
|
|
88
|
+
|
|
89
|
+
for (const pair of filterPairs) {
|
|
90
|
+
const [encodedName, valuesString] = pair.split(':');
|
|
91
|
+
const name = decodeURIComponent(encodedName);
|
|
92
|
+
|
|
93
|
+
if (processedUrlFilters.current.has(name)) continue;
|
|
94
|
+
|
|
95
|
+
const group = filterGroups.find(g => g.name === name);
|
|
96
|
+
if (!group) continue;
|
|
97
|
+
|
|
98
|
+
processedUrlFilters.current.add(name);
|
|
99
|
+
|
|
100
|
+
let values: string[];
|
|
101
|
+
if (valuesString.startsWith('[') && valuesString.endsWith(']')) {
|
|
102
|
+
const arrayContent = valuesString.slice(1, -1);
|
|
103
|
+
values = arrayContent ? arrayContent.split(',').map(encodedValue => decodeURIComponent(encodedValue)) : [];
|
|
104
|
+
} else {
|
|
105
|
+
values = [decodeURIComponent(valuesString)];
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
let filterValue;
|
|
109
|
+
|
|
110
|
+
if (group.type === 'stringList') {
|
|
111
|
+
filterValue = values;
|
|
112
|
+
} else if (group.type === 'text') {
|
|
113
|
+
filterValue = values.length === 1 ? [{ value: values[0], label: values[0] }] :
|
|
114
|
+
values.map(value => ({ value, label: value }));
|
|
115
|
+
} else {
|
|
116
|
+
filterValue = values.map(value => {
|
|
117
|
+
const matchingOption = group.options?.find(opt => opt.value === value);
|
|
118
|
+
let label = value;
|
|
119
|
+
if (matchingOption?.label) {
|
|
120
|
+
label = String(matchingOption.label);
|
|
121
|
+
} else if (matchingOption?.labelRenderer) {
|
|
122
|
+
label = String(matchingOption.labelRenderer(value));
|
|
123
|
+
} else if (group.labelRenderer) {
|
|
124
|
+
label = String(group.labelRenderer(value));
|
|
125
|
+
}
|
|
126
|
+
return { value, label };
|
|
127
|
+
});
|
|
128
|
+
}
|
|
104
129
|
|
|
105
|
-
|
|
106
|
-
|
|
130
|
+
if (group.multiple && !valuesString.startsWith('[') && !valuesString.endsWith(']')) {
|
|
131
|
+
if (group.type === 'stringList') {
|
|
107
132
|
filterValue = values;
|
|
108
|
-
} else if (
|
|
109
|
-
|
|
110
|
-
filterValue = values.length === 1 ? [{ value: values[0], label: values[0] }] :
|
|
111
|
-
values.map(value => ({ value, label: value }));
|
|
112
|
-
} else {
|
|
113
|
-
// For other types, find options with labels
|
|
114
|
-
filterValue = values.map(value => {
|
|
115
|
-
const matchingOption = group?.options?.find(opt => opt.value === value);
|
|
116
|
-
let label = value;
|
|
117
|
-
|
|
118
|
-
if (matchingOption?.label) {
|
|
119
|
-
label = String(matchingOption.label);
|
|
120
|
-
} else if (matchingOption?.labelRenderer) {
|
|
121
|
-
label = String(matchingOption.labelRenderer(value));
|
|
122
|
-
} else if (group?.labelRenderer) {
|
|
123
|
-
label = String(group.labelRenderer(value));
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
return {
|
|
127
|
-
value,
|
|
128
|
-
label
|
|
129
|
-
};
|
|
130
|
-
});
|
|
133
|
+
} else if (!Array.isArray(filterValue)) {
|
|
134
|
+
filterValue = [filterValue];
|
|
131
135
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
// Fallback: if group not found but we detected array format, assume it should be multiple
|
|
144
|
-
const shouldBeMultiple = group?.multiple || (!group && valuesString.startsWith('[') && valuesString.endsWith(']'));
|
|
145
|
-
|
|
146
|
-
const filter = {
|
|
147
|
-
name,
|
|
148
|
-
type: group?.type || 'select',
|
|
149
|
-
placeholder: group?.placeholder,
|
|
150
|
-
value: filterValue,
|
|
151
|
-
multiple: shouldBeMultiple
|
|
152
|
-
};
|
|
153
|
-
|
|
154
|
-
return filter;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
newFilters.push({
|
|
139
|
+
name,
|
|
140
|
+
type: group.type,
|
|
141
|
+
placeholder: group.placeholder,
|
|
142
|
+
value: filterValue,
|
|
143
|
+
multiple: group.multiple,
|
|
155
144
|
});
|
|
145
|
+
}
|
|
156
146
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
} catch (error) {
|
|
160
|
-
setHasInitialized(true);
|
|
147
|
+
if (newFilters.length > 0) {
|
|
148
|
+
setFilters(prev => [...prev, ...newFilters]);
|
|
161
149
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
150
|
+
|
|
151
|
+
hasRestoredFromUrl.current = true;
|
|
152
|
+
} catch (_error) {
|
|
153
|
+
// ignore parse errors
|
|
165
154
|
}
|
|
166
|
-
}, [filterGroups,
|
|
155
|
+
}, [filterGroups, initialFiltersParam]);
|
|
167
156
|
|
|
168
157
|
return (
|
|
169
158
|
<FilterContext.Provider value={{ filters, setFilters, filterGroups }}>
|
|
@@ -351,7 +340,7 @@ const FilterBar = ({ className }: { className?: string }) => {
|
|
|
351
340
|
);
|
|
352
341
|
};
|
|
353
342
|
|
|
354
|
-
const FilterClear = ({ className }: { className?: string}) => {
|
|
343
|
+
const FilterClear = ({ className }: { className?: string }) => {
|
|
355
344
|
const { filters, setFilters } = React.useContext(FilterContext);
|
|
356
345
|
|
|
357
346
|
const hasActiveFilters = filters.filter((filter) => filter.value?.length > 0).length > 0;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export * from './theme/ThemeSwitcher';
|
|
2
2
|
export * from './theme/ThemeProvider';
|
|
3
3
|
|
|
4
|
+
export * from "./badge"
|
|
4
5
|
export * from './button';
|
|
5
6
|
export * from './card';
|
|
6
|
-
export * from './
|
|
7
|
+
export * from './modal';
|
|
7
8
|
export * from './input';
|
|
8
9
|
export * from './separator';
|
|
9
10
|
export * from './selectBox';
|
|
@@ -11,7 +12,6 @@ export * from './tabs';
|
|
|
11
12
|
export * from './tooltip';
|
|
12
13
|
export * from './label';
|
|
13
14
|
export * from './breadcrumb';
|
|
14
|
-
export * from './dialog';
|
|
15
15
|
export * from './button';
|
|
16
16
|
export * from './filters';
|
|
17
17
|
export * from './popover';
|
|
@@ -20,4 +20,6 @@ export * from './checkbox';
|
|
|
20
20
|
export * from './heading';
|
|
21
21
|
export * from './text';
|
|
22
22
|
export * from './resizeable';
|
|
23
|
-
export * from './textarea';
|
|
23
|
+
export * from './textarea';
|
|
24
|
+
export * from "./MessageBox"
|
|
25
|
+
export * from "./Panel"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TriangleAlert } from "lucide-react"
|
|
2
2
|
import React, { useRef } from "react"
|
|
3
|
-
import {
|
|
4
|
-
import { Button } from "
|
|
3
|
+
import { Modal, ModalTitle, ModalFooter } from "./dialog"
|
|
4
|
+
import { Button } from "../button"
|
|
5
5
|
|
|
6
6
|
interface ConfirmModalProps {
|
|
7
7
|
title: string
|
|
@@ -15,15 +15,15 @@ export function ConfirmModal({ title, content, onConfirm, onCancel, isOpen }: Co
|
|
|
15
15
|
const cancelButtonRef = useRef(null)
|
|
16
16
|
|
|
17
17
|
return (
|
|
18
|
-
<
|
|
18
|
+
<Modal isOpen={isOpen} onClose={onCancel} description="Confirm Modal">
|
|
19
19
|
<div className="sm:flex sm:items-start p-2">
|
|
20
20
|
<div className="mx-auto flex h-12 w-12 shrink-0 items-center justify-center rounded-full bg-red-100 sm:mx-0 sm:h-10 sm:w-10">
|
|
21
21
|
<TriangleAlert className="size-6 text-red-600" aria-hidden="true" />
|
|
22
22
|
</div>
|
|
23
23
|
<div className="mt-3 text-center sm:ml-4 sm:mt-0 sm:text-left">
|
|
24
|
-
<
|
|
24
|
+
<ModalTitle className="leading-6" show >
|
|
25
25
|
{title}
|
|
26
|
-
</
|
|
26
|
+
</ModalTitle>
|
|
27
27
|
<div className="mt-2">
|
|
28
28
|
<div className="prose text-sm text-gray-500">
|
|
29
29
|
{content}
|
|
@@ -31,7 +31,7 @@ export function ConfirmModal({ title, content, onConfirm, onCancel, isOpen }: Co
|
|
|
31
31
|
</div>
|
|
32
32
|
</div>
|
|
33
33
|
</div>
|
|
34
|
-
<
|
|
34
|
+
<ModalFooter align="right">
|
|
35
35
|
<Button
|
|
36
36
|
variant="destructive"
|
|
37
37
|
onClick={onConfirm}
|
|
@@ -45,7 +45,7 @@ export function ConfirmModal({ title, content, onConfirm, onCancel, isOpen }: Co
|
|
|
45
45
|
>
|
|
46
46
|
Cancel
|
|
47
47
|
</Button>
|
|
48
|
-
</
|
|
49
|
-
</
|
|
48
|
+
</ModalFooter>
|
|
49
|
+
</Modal>
|
|
50
50
|
)
|
|
51
51
|
}
|